用webview 的时候看到这个是不是egg pain~~~~
有个需求,H5调用Android拨打电话,
在h5 那边 就是一个a标签 href:tel="XXXXXX"
到了Android 这边,你拦截个页面,然后调用拨打电话intent,OK~~~
但是!!!!
有些机型就不行了,例如OPPO大家族!!!,会给你来个这个ERR_UNKNOWN_URL_SCHEME
刺激不?试了很多网上的办法,未果~遂监听onReceivedError这个方法,然后里面做跳转,然后webview在load原来的页面,就OK拉~~~
还有一个办法,就是用Android 监听js方法,然后js调你写的方法,但是,上面的人说~这样iphone得写另外一套,麻烦,就GG了
贴上JS交互的代码:写完了代码,没用上,多少有点难受鸭!
@JavascriptInterface public void callTel(String telNum) { call(telNum); } private void call(String telNum) { Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + telNum)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); Log.e(TAG, "callTel: 已执行"); }
webView.addJavascriptInterface(this, "android");//这个别忘了加!!!!!!
JS那边代码:写个click事件,监听下面的就行了~~~
/*js调用android的方法*/ function jsCallAndroidAlert(){ var tel="XXXXXXXX"; javascript:android.callTel(tel); }