NativeApi.getDeviceId("123456",function (deviceid){
document.getElementById("deviceId").innerHTML = deviceid;
},
function (error){
document.getElementById("deviceId").innerHTML = error;
});
像这样js将函数作为参数来实现回调,android这边应该怎么写呢? 回调函数应该怎么办呢?
你这种情况应该让js调你android的代码,写个类(名字随便起) 里面加几个方法,用javascriptInterface注解一下,然后通过webview的addJavascriptInterface方法将类的对象映射到js页面,js就可以直接调
用你的方法,顺便把值传过来。
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JSHook(), "hello"); //在JSHook类里实现javascript想调用的方法,并将其实例化传入webview, "hello"这个字串告诉javascript调用哪个实例的方法
public class JSHook{
public void javaMethod(String p){
Log.d(tag , "JSHook.JavaMethod() called! + "+p);
}
public void showAndroid(){
String info = "来自手机内的内容!!!";
webView.loadUrl("javascript:show('"+info+"')");
}
public String getInfo(){
return "获取手机内的信息!!";
}
}
我们的h5与原生交互使用的是cordova,你可以查查