mailto:和tel:在android web浏览器中

时间:2014-01-16 12:15:59

标签: javascript android html

我正在为webview中的android / ios / windows phone应用程序开发一个html网页。

我有这样的链接:和mailto:“mail@mail.com”一样

在ios工作正常,也在chrome,firefox ......但在webviews的web浏览器中,android检测到它是正常的链接,并显示一个不存在的网页(此网址无法找到bla bla bla)

有没有办法在android中避免这种情况?或者我应该在javascript中检测浏览器并加载href吗?

我发现这是为javascript:     var browser = navigator.appName;

但我读到这不是一个好习惯。

1 个答案:

答案 0 :(得分:1)

禁用自动链接Webview

有一种方法可以做到这一点 - 相当丑陋,两层,但仍然是一种解决方法。

你应该

  1. 修改webview将如何处理可自动链接的项目
  2. 明确告知加载的页面不应用样式和触觉反馈

    mWebView.setWebViewClient( new WebViewClient() {
    
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, final String url) {
        Uri uri = Uri.parse(url);
    
     if (url.startsWith("http:") || url.startsWith("https:")) {
      return false;
    } 
        //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) {...}
    }); 
    
  3. 在html中,在标记内指定以下元标记:

    <meta name="format-detection" content="telephone=no" />
    <meta name="format-detection" content="email=no" />
    

    希望这有帮助。