Я занимаюсь разработкой Android-приложения для блога, как веб-сайт.
Для этого я показываю HTML-страницу со списком категорий, в котором при нажатии отображаются статьи, относящиеся к этой категории.
Я загружаю эти статьи из RSS-каналов веб-сайта в формате XML, и с помощью JavaScript я анализирую их для отображения на странице HTML.
Этот процесс синтаксического анализа XML требует много времени для загрузки страницы. В течение этого периода я получаю пустой экран. Я реализовал диалоговое окно прогресса, которое отлично работает, когда страница загружается впервые, но когда XML обрабатывается при помощи JavaScript оно не появляется.
Вот как я реализовал диалог Process.
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();
}
});
}
- Как отобразить диалоговое окно прогресса во время синтаксического анализа XML с помощью JavaScript?
- Кроме того, я хочу показать сообщение об ошибке, если для той же вещи нет подключения к Интернету, является ли это каким-либо способом?
- Я использовал функцию вызова как «телефон: номер телефона», который работал, но после того, как я добавил де
public boolean shouldOverrideUrlLoading это не работает? что я сделал не так?