在Android上使用tel:Hyperlinks< 4替代?

时间:2013-05-02 13:17:28

标签: javascript android html5 tel

我有一个app,可以为英国08号码提供正常的固定电话号码。

目前,这是应用中显示的网页,当用户找到他们想要的号码时,点击绿色电话图标。我正在使用以下JavaScript强制强制tel:link与数字一起调出dailer。

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

就我所见,此方法适用于所有较新的Android 4.0及更高版本。但是,当我使用旧的旧金山旧金山手机(Android 2.3)时,它并没有带来dailer。相反,它只是尝试打开一个新的页面,其中tel:01xxxxxxxx作为URL,而URL又显示网页不可用的消息。

我认为这是因为tel:是HTML5的一部分,这就是为什么它不起作用。有没有可以适用于所有版本的替代方案?

1 个答案:

答案 0 :(得分:1)

tel:是首选 - 自1990年代以来。 callto:可能对某些设备效果更好。另见:How to mark-up phone numbers?

修改

由于您在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>