0

我有一个应用程序,它为英国 08 号码提供正常的固定电话号码。

目前这是应用程序中显示的网页,当用户找到他们想要的号码并点击绿色电话图标时。我正在使用以下 JavaScript 来强制然后强制使用 tel: 与号码链接以调出 dailer。

document.location.href = 'tel:'+number;//push browser to call number

据我所知,此方法适用于所有较新的 android 4.0 及更高版本。但是当我使用我的旧橙色旧金山电话(android 2.3)时,它并没有带来 dailer。相反,它只是尝试打开一个以 tel:01xxxxxxxx 作为 URL 的新页面,该 URL 反过来显示网页不可用消息。

我认为这是因为 tel: 是 HTML5 的一部分,这就是它不起作用的原因。是否有任何替代方案适用于所有版本?

4

1 回答 1

1

tel:是首选 - 自 1990 年代以来。callto:可能对某些设备更有效。另请参阅:如何标记电话号码?

编辑

由于您的页面在 Android WebView 中运行,因此您可以使用 hack 处理此错误(也在Android WebView "tel:" links show web page not found 中进行了描述):

myWebView.setWebViewClient(new WebViewClient() {  
    @Override  
    public boolean shouldOverrideUrlLoading(WebView view, String url) {  
        if (url.startsWith("tel:")) { 
            Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); 
            startActivity(intent); 
        }
        else if(url.startsWith("http:") || url.startsWith("https:")) {
            view.loadUrl(url);
        }
        return true;  
    }  
} 

您可能需要获得许可

<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
于 2013-05-02T14:28:53.727 回答