2013-05-02 40 views
0

我有一個app給英國08號碼的正常座機號碼。在Android上使用tel:超鏈接<4選擇?

目前這是一個顯示在應用程序中的網頁,當用戶找到他們想要的號碼並點擊綠色電話圖標。我正在使用下面的JavaScript來強制,然後用數字強制一個tel:鏈接來調出dailer。

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

此方法適用於所有較新的Android 4.0及更高版本,據我所見。但是,當我使用舊的舊金山電話(android 2.3)時,它不會帶來損壞。相反,它只是嘗試打開一個新的網頁,並將tel:01xxxxxxxx作爲URL,然後顯示網頁不可用消息。

我認爲這是因爲tel:是HTML5的一部分,因此它不起作用。有沒有其他方法可以在所有版本上運行?

+0

您是否將其包裹在「webview」中 - 又名您有沒有訪問原生Android代碼? – Phil 2013-05-02 15:19:16

+0

是的,它在webview中,只是顯示我的網頁像一個iframe – jampez77 2013-05-02 15:21:17

回答

1

tel:是首選 - 自20世紀90年代以來。 callto:可能對某些設備更好。另請參見:How to mark-up phone numbers?

編輯

既然你有一個Android的WebView中運行的頁面,你可以處理這個錯誤與黑客(也在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> 
+0

我試過callto:以及它仍然產生相同的結果,我很害怕 – jampez77 2013-05-02 14:45:56

+0

@ jampez77,看到我的更新回覆 – Phil 2013-05-02 15:30:29

+0

對,我會試試這個只要我下班回家,並讓你知道,預先致謝,雖然 – jampez77 2013-05-02 15:33:30