在我们的应用程序中,我们使用 webview 在视图中加载外部链接。使用 loadurl 方法加载链接并将 webview 客户端设置为显示预加载器和 webchrome 客户端以侦听 webview 的任何链接更改。
在 webview 中加载的 URL。加载链接时,有几个 iframe,在其中我们有一个文本链接。Onclick 链接,页面需要在默认浏览器中打开,而不是在 webview 本身中。
使用 min-sdk / API level 8 构建项目。以下是供参考的代码片段。Oncreate 附加的 webview 客户端和 webchromeclient 到 webview,然后为其分配 URL。
private class SomWebViewClient extends WebChromeClient{
public void onProgressChanged (WebView view, int newProgress){
if(newProgress == 100){
}
}
}
private class SomWebViewDefClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
@Override
public void onLoadResource (WebView view, String url){
if(url.equalsIgnoreCase("http://google.com")){
view.stopLoading();
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
view.canGoBack();
}
}
}
我尝试将 WebViewClient 添加到 webview 并识别 shouldOverrideUrlLoading 方法中的 URL 更改。但这里没有捕捉到任何事件。有什么方法可以处理 webview url 的 iframe 内的点击。
当我尝试在 webview 中打开不同的链接(没有任何 iframe)时,能够跟踪在 shouldOverrideUrlLoading 中触发的点击。但是,当 URL 包含 iframe 并且当用户单击 webview 内的任何链接时,无法在 shouldOverrideUrlLoading 内跟踪并在同一个 webview 本身而不是新的浏览器窗口中打开。
当我搜索问题时,我无法找到确切的问题。如果有人遇到类似问题并找到解决方案,请分享。
如果还有什么需要,请告诉我。
提前致谢, 问候 Srinivasan.C