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里的语句就会执行,反之亦然,虽然暴力,但是很方便。