Inn*_*ova 6 android webview linkify
我有一个我正在创建的webview.它似乎自动将数字链接到tel:urls.我没有看到删除此功能的方法(至少没有类似于在textview上启用它的方式).
代码非常简单:
// populate the web view
WebView webView = (WebView) findViewById(R.id.app_info_webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
webView.setBackgroundColor(0);
String url = APP_INFO_BODY_HTML + "?versionName=" + versionName;
webView.loadUrl(url);
Run Code Online (Sandbox Code Playgroud)
我在页面底部有版权声明,android正在将2011改为打开拨号器的可点击链接.此外,应用程序版本1.0.0在拨号器中打开.
有没有办法禁用此功能?
更新:我刚刚发现这似乎依赖于设备......发生在Droid X上,但不是三星Captivate,而不是Nexus S,而不是模拟器.
小智 7
有一种方法可以做到这一点 - 相当丑陋,两层,但仍然是一种解决方法.
你应该
明确告诉加载的页面不要应用样式和触觉反馈.
mWebView.setWebViewClient( new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, final String url) {
Uri uri = Uri.parse(url);
//TODO analyse the uri here
//and exclude phone and email from triggering any action
return false;
}
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {}
public void onPageFinished (WebView view, String url) {...}
public void onPageStarted(WebView view, String url, Bitmap favicon) {...}
public void onLoadResource(WebView view, String url) {...}
});
Run Code Online (Sandbox Code Playgroud)
在html中,在标记内指定以下元标记:
<meta name="format-detection" content="telephone=no" />
<meta name="format-detection" content="email=no" />
Run Code Online (Sandbox Code Playgroud)希望这可以帮助.
我很惊讶地看到它在从您自己的 WebView 中选择号码时启动 Dialer。
除非您覆盖 WebViewClient::shouldOverrideUrlLoading() 并检测到 url 方案具有“tel”并启动 Dialer 活动,否则它永远不会从您的 WebView 启动 Dialer。您确定没有在 shouldOverrideUrlLoading() 中处理 tel: 方案吗?
归档时间: |
|
查看次数: |
4970 次 |
最近记录: |