我正在尝试在应用程序的第一页中显示一个url,但该网址需要第三方标志,该标志会像警报对话框一样弹出,我尝试使用WebChormeClient处理警报,当我尝试使用来自w3Schools的示例,但是当我尝试使用url时,该方法不起作用,是否有任何方法可以处理webview中的第三方登录警报?
请找到我使用的代码
WebSettings webSettings = mywebview.getSettings();
mywebview.setWebViewClient(new SSLTolerentWebViewClient());
webSettings.setJavaScriptEnabled(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
mywebview.setWebChromeClient(new WebChromeClient());
mywebview.loadUrl(url);
private class SSLTolerentWebViewClient extends WebViewClient {
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed(); // Ignore SSL certificate errors
}
}
我不应该提供该URL,想象一下您正在加载一个要求您以第三方警报形式登录的URL,然后以成功的身份验证来加载页面。
答案 0 :(得分:-1)
根据您的代码,我认为您不会在设置Webviewclient和Webcromeclient之后在Webview中启用Javascript。
mWebView.setWebViewClient(new WebViewClient());
mWebView.setWebChromeClient(new WebChromeClient());
然后使用以下代码加载HTML页面。
mWebView.loadUrl("file:///android_asset/"+Your_Html_Page);
答案 1 :(得分:-1)
您可以根据需要选择以下方法。
mywebview.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
return super.onJsConfirm(view, url, message, result);
}
@Override
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
return super.onJsPrompt(view, url, message, defaultValue, result);
}
});
Jsresult处理方法中的
result.cancel(); result.confirm();
在JsPromptResult处理方法中
result.cancel(); result.confirm(); result.confirm(String msg);