用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);
}
本文探讨了解决H5调用Android拨打电话在特定机型如OPPO上遇到的ERR_UNKNOWN_URL_SCHEME错误。提供了两种解决方案:一是监听onReceivedError并进行页面跳转;二是通过JS交互调用Android方法,尽管此方案因iOS兼容性问题未被采纳。
2099

被折叠的 条评论
为什么被折叠?



