gpt4 book ai didi

javascript - 我可以在使用 JavaScript 解析 XML 时显示进度对话框和错误消息吗?

转载 作者:太空狗 更新时间:2023-10-29 13:36:27 26 4
gpt4 key购买 nike

我正在为类似网站的博客开发 Android 网络应用程序。为此,我正在显示 HTML 页面内容列表,单击该列表会显示与该类别相关的文章。

我正在从网站的 XML 格式的 RSS 提要中获取这篇文章,并通过使用 JavaScript 解析它以在 HTML 页面上显示。

这个解析 XML 的过程需要很多时间来加载页面。在此期间我得到空白屏幕。我已经实现了进度对话框,它在页面第一次加载时工作正常,但当 XML 被 JavaScript 解析时它没有出现。

下面是我如何实现流程对话框。 Activity .java:

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);

setContentView(R.layout.main);

getWindow().setFeatureInt(Window.FEATURE_PROGRESS,
Window.PROGRESS_VISIBILITY_ON);

webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.setBackgroundColor(0);

final ProgressDialog progressDialog = new ProgressDialog(activity);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("Loading...please wait");
progressDialog.setCancelable(true);
webview.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}

});

webview.loadUrl("file:///android_asset/HomePage.html");

// WebChromeClient give progress etc info
webview.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
progressDialog.show();
progressDialog.setProgress(0);
activity.setProgress(progress * 1000);
progressDialog.incrementProgressBy(progress);
if (progress == 100 && progressDialog.isShowing())
progressDialog.dismiss();
}
});
}
  1. 如何在 JavaScript 解析 XML 时显示进度对话框?
  2. 此外,如果没有可用于同一事物的互联网连接,我还想显示一条错误消息,他们有什么办法吗?
  3. 我将调用功能用作“电话:电话号码”,它可以正常工作,但在我添加 de 之后 public boolean shouldOverrideUrlLoading 它不起作用?我做错了什么?

最佳答案

对于您的问题您可以在 activity.java 文件中使用以下代码

   package com.package name;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
import android.widget.Toast;
public class Myactivity extends Activity {
TextView myLabel;
WebView wv;
final Activity activity=this;
/** Called when the activity is first created. */





@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);

setContentView(R.layout.main);

getWindow().setFeatureInt(Window.FEATURE_PROGRESS,Window.PROGRESS_VISIBILITY_ON);

wv=(WebView)findViewById(R.id.webview);
wv.getSettings().setJavaScriptEnabled(true);
wv.setBackgroundColor(0);

final ProgressDialog progressDialog = new ProgressDialog(activity);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("Loading...please wait");
progressDialog.setCancelable(true);
wv.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL,
Uri.parse(url));
startActivity(intent);
return true;
}else{
view.loadUrl(url);
return true;
}

}
});

wv.loadUrl("file:///android_asset/page.html");

// WebChromeClient give progress etc info
wv.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
progressDialog.show();
progressDialog.setProgress(0);
activity.setProgress(progress * 1000);
progressDialog.incrementProgressBy(progress);
if (progress == 100 && progressDialog.isShowing())
progressDialog.dismiss();
}
});

if (AppStatus.getInstance(this).isOnline(this)) {

Toast t = Toast.makeText(this,"Welcome !!!!",8000);
t.show();
} else {
AlertDialog alertDialog = new AlertDialog.Builder(
CafeNashikActivity.this).create();

// Setting Dialog Title
alertDialog.setTitle("No Internet");

// Setting Dialog Message
alertDialog.setMessage("Internet Connection not available!");

// Setting Icon to Dialog
//alertDialog.setIcon(R.drawable.tick);

// Setting OK Button
alertDialog.setButton("Exit", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
MyActivity.this.finish();

}
});

// Showing Alert Message
alertDialog.show();
}


}


}

希望对您有所帮助。

关于javascript - 我可以在使用 JavaScript 解析 XML 时显示进度对话框和错误消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9933053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com