gpt4 book ai didi

Android - webview - shouldOverrideUrlLoading 未调用 - 当用户单击 iframe 内的链接时

转载 作者:太空狗 更新时间:2023-10-29 14:21:34 27 4
gpt4 key购买 nike

在我们的应用程序中,我们使用 webview 在 View 中加载外部链接。使用 loadurl 方法加载链接并设置 webview 客户端显示预加载器和 webchrome 客户端以监听 webview 的任何链接更改。

在 webview 中加载的 URL。加载链接时,有几个 iframe,在其中我们有一个文本链接。单击链接时,页面需要在默认浏览器中打开,而不是在 webview 本身中打开。

使用 min-sdk/API 级别 8 构建项目。以下是供引用的代码 fragment 。 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 本身而不是新的浏览器窗口中打开。

当我搜索问题时,我无法找到确切的问题。如果有人遇到类似问题并找到解决方案,请分享。

如果还有其他需要,请告诉我。

提前致谢,问候斯里尼瓦桑.C

最佳答案

也许你打破了Same Origin Policy .看看this similar post .

编辑:有一种方法可以克服此安全策略,但您需要接受您面临的风险。在响应中,确保您有以下 header :“Access-Control-Allow-Origin:”

关于Android - webview - shouldOverrideUrlLoading 未调用 - 当用户单击 iframe 内的链接时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16447437/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com