安卓webview加载H5页面,使H5页面中的超链接(a标签)无响应。
问题产生的原因: H5页面中的超链接在浏览器、ios App中均能打开,但嵌入android App中点击无反应。
解决方案:
1、在android App中配置一下,网上大部分解决方案如下:
WebView tabContent = new WebView(context);
tabContent.loadDataWithBaseURL(null, content, "text/html", "UTF-8", null);
tabContent.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return true;
}
});
return tabContent;
当一个新的url要在当前WebView进行加载的时候,这个方法给应用一个机会来控制url的处理。如果WebView没有setWebViewClient,则默认操作是WebView将询问Activity Manager获取合适的handler处理url。如果WebView设置了setWebViewClient,返回true代表当前应用来处理url,返回false则代表当前webview来处理url(如果http请求是POST方法,该方法将不会被调用)。
2、我的解决方案
跟安卓开发约定一个标志变量(固定不变),写在<a>
标签中的href中,例如:
<a href="https://www.baidu.com?flag='123456'">
安卓开发在shouldOverrideUrlLoading中对该标志变量进行处理(采用此方法是因为shouldOverrideUrlLoading中return true无效果,具体原因不详)。
本人是web前端开发,不了解android开发,如有问题烦请赐教,谢谢!