我有一个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的一部分,这就是为什么它不起作用。有没有可以适用于所有版本的替代方案?
答案 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>