这是我遇到问题的代码部分......
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.indexOf("tel:") > -1) {
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
return true;
} else {
return true;
}
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.loadUrl("javascript:replace('window.location.href', 'window.location')");
view.loadUrl("javascript:replace('document.location.href', 'document.location')");
}
});
我只是在shouldOverrideUrlLoading
添加webview
功能,以便在链接是电话号码时拨打电话,并在onPageFinished
上添加一些javascript代码来修复一些webview
与window.location.href
和document.location.href
...
提前感谢所有评论和回复,欢迎修复和替代方案。
答案 0 :(得分:3)
您可以创建扩展WebViewClient的新类。 试试这段代码
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
}
}
然后在你的onCreate方法中使用。
webView.setWebViewClient(new MyWebViewClient());
在这两个函数都在调用.CheckOut this。
答案 1 :(得分:0)
Dhanyavaad!
我的问题发生在shouldOverrideUrlLoading
。当链接不是电话号码时,我正在返回true
,现在,如果网址不是电话号码,则返回super.shouldOverrideUrlLoading(view, url);
并完美运行。
感谢Shashank你的代码睁开眼睛。
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.indexOf("tel:") > -1) {
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
return true;
} else {
return super.shouldOverrideUrlLoading(view, url);
}
}
});