当我在第二部分中添加代码以激活 Webview 应用程序中的搜索和邮件连接时,进度栏被禁用。
webViewClient = new CustomWebViewClient();
wprogressDialog = new ProgressDialog(context);
wprogressDialog.setMessage("yapayreklam.com Loading..");
webView = findViewById(R.id.webView);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setJavaScriptEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
}
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.setWebViewClient(webViewClient);
webView.getSettings().getAllowFileAccess();
webView.loadUrl(url);
webView.getSettings().getAllowFileAccessFromFileURLs();
当我在下面添加此部分时,进度对话框不起作用。
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if( url.startsWith("http:") || url.startsWith("https:") ) {
return false;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity( intent );
return true;
}
});
webView.loadUrl(url);
最佳答案
我解决了问题,添加了进度对话框关闭。
if(wprogressDialog.isShowing()){
wprogressDialog.dismiss();
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if( url.startsWith("http:") || url.startsWith("https:") ) {
return false;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity( intent );
return true;
}
});
}
关于java android WebView进度对话框问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62393558/