1. 程式人生 > >前端html自動撥打電話,傳送簡訊,將號碼存到通訊錄,安卓錯誤net::err unknown url scheme

前端html自動撥打電話,傳送簡訊,將號碼存到通訊錄,安卓錯誤net::err unknown url scheme

一、一般的web處理
1、撥打電話

<a href="tel:10086">撥打10086</a>

2、傳送簡訊

<a href="sms:10086">給10086傳送簡訊</a>

3、移動web頁面自動探測電話號碼

<meta name="format-detection" content="telephone=no">   <!--safari for ios-->
<meta http-equiv="x-rim-auto-match" content="none">     <!--blackBerry Browser-->

(1)備註:
①雖然是自動探測電話號碼,但實際上是所有數字都會被識別為電話號碼。
②如果同一頁面出現數字的地方比較多,使用者體驗就會比較差,因為一不小心點到數字,就會彈框提醒是否撥打電話。
4、使用wtai協議進行撥打電話。

<a href="wtai://wp//mc;10086">撥打10086 </a>  <!--測試了一下,網頁提示“無法顯示此網頁”-->
<a href="wtai://wp/ap;10086;">將10086儲存至電話號碼</a> 

二、微信頁面會遮蔽電話號碼。解決方法:
1、撥號的程式碼還是不變,和原先的一樣。
2、開啟撥號頁面要做下處理,在網址後面增加一個錨節點mp.weixin.qq.com。
例項如下:
如:

一鍵撥號 上需要撥號程式碼,操作如下
在有這個程式碼的頁面URl後邊加上“#mp.weixin.qq.com” 如:tel:10086#mp.weixin.qq.com
3、備註:
在實際專案中,我只寫了<a href="tel:10086">撥打10086</a>,沒有加上後面的錨節點,但是也能使用,能撥打電話。

三、android撥打電話,電話號碼是從後臺傳過來的,會出現錯誤:net::err unknown url scheme。解決方法:
1、將如下 java程式碼 拷到工程中的類裡面

mWebView = (WebView) findViewById(R.id.web_view);  

    WebSettings webSettings = mWebView.getSettings();  
    webSettings.setJavaScriptEnabled(true
); mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if( url.startsWith("http:") || url.startsWith("https:") ) { return false; } // Otherwise allow the OS to handle things like tel, mailto, etc. Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity( intent ); return true; } }); mWebView.loadUrl(url);

2、適用於android開發的專案,不適用於先是用h5和webjava寫的開發,然後直接移植到安卓(瀏覽器封裝)的專案