js与Android和iOS的webview交互,兼容的写法

Android和js交互需要有个映射的名字,像这样

 webview.addJavascriptInterface(new jsToAndroid(),"android");

 private class jsToAndroid {
        @JavascriptInterface
        public void goPay(){
            ...
        }
 }

这里的android就是js和native的映射名字,js需要这样调用才能成功:

android.goPay();

然而ios不需要这个名称就可以直接调用,这样在开发的时候可能就需要native传值,让js区分设备,这样就多了一个值去传,觉得这样做没必要。其实我们完全可以这么写:

if(typeof goPay ==="function"){
    //调用ios native
    goPay();
}else{
    //调用Android native
    android.goPay();
}

如果是调用的是Android设备,那么if里的语句就会执行,反之亦然,虽然暴力,但是很方便。

你可能感兴趣的:(html,android,ios)