Open panda020111 opened 6 years ago
无论从最开始的跨平台框架Cordova,还是后面的RN或者是Weex,js与native的通信一直都是一个比较关注的点;想在这里总结下,js与Native之间通信的问题;
Android端js bridge的常规实现有这么几种:
@JavascriptInterface,这是Android提供给Js和Native通信的官方方案; public class JavascriptInterface {
@JavascriptInterface public void showToast(String msg) { Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); }
}
//再将这个类注入到js执行环境中 webview.addJavascriptInterface(new JavascriptInterface(), 'javascriptInterface');
//然后就可以在js中使用了 function show(msg) { javascriptInterface.showToast(msg); } 这种方式在Android4.2之前有严重的安全问题,在4.2之后,才有解决;在著名的开源项目Cordova中就使用的这种方式进行js-bridge的构建;
看你的文章,觉得作者在跨平台领域专研的很深,面试必备呀
无论从最开始的跨平台框架Cordova,还是后面的RN或者是Weex,js与native的通信一直都是一个比较关注的点;想在这里总结下,js与Native之间通信的问题;
Android端js bridge的常规实现有这么几种:
@JavascriptInterface,这是Android提供给Js和Native通信的官方方案; public class JavascriptInterface {
}
//再将这个类注入到js执行环境中 webview.addJavascriptInterface(new JavascriptInterface(), 'javascriptInterface');
//然后就可以在js中使用了 function show(msg) { javascriptInterface.showToast(msg); } 这种方式在Android4.2之前有严重的安全问题,在4.2之后,才有解决;在著名的开源项目Cordova中就使用的这种方式进行js-bridge的构建;