23、JS调用Android原生代码方法
来源:互联网 发布:淘宝客服怎么做流程 编辑:程序博客网 时间:2024/05/17 01:38
JS调用Android原生代码方法
1. 声明@JavascriptInterface,进行对象映射
2. 使用WebViewClient.shouldOverrideUrlLoading函数,拦截URL
3. 使用WebChromeClient.onConsoleMessage函数
4. 使用WebChromeClient.onJsPrompt函数,拦截JS输入框消息
三种方法对比:
调用方式
优点
缺点
使用场景
@JavascriptInterface
方便简洁
Android4.2以下存在漏洞问题
Android4.2以上相对简单互调场景
shouldOverrideUrlLoading
不存在漏洞问题
使用复杂,需要进行协议的约束;从Native层往Web层传递值比较繁琐
不需要返回值情况下的互调场景
onJsPrompt
不存在漏洞问题
使用复杂,需要进行协议的约束
能满足大多数情况下的互调场景
Android调用JS原生代码方法
1. Webview.loadUrl
2. Webview.evaluateJavascript
a) 该方法的执行不会使页面刷新,loadUrl则会刷新。
b) Android 4.4 后才会使用。
方法对比:
调用方式
优点
缺点
使用场景
使用loadUrl
方便简洁
效率低;获取返回值麻烦
不需要获取返回值,对性能要求较低时
使用evaluateJavascript
效率高
向下兼容性差(仅Android 4.4 以上可用)
Android 4.4以上
使用建议:两种方法混合使用
阅读全文
0 0
- 23、JS调用Android原生代码方法
- js 调用 Android 原生代码
- ReactNative-JS 调用原生方法实例代码
- js调用Android、ios原生代码
- android Js通过wepView调用原生代码
- js调用android原生方法,简单明了。
- JS怎样调用Android本地原生方法
- 通过js调用android原生方法
- js调用ios原生多种写法参考及js调用android原生方法参考
- IOS 与 Android WebView 中 JS 调用原生代码
- ReactNative-JS调用原生方法
- 原生js调用json方法
- 原生js调用json方法
- js调用原生方法解决办法
- WebView原生方法---使用javascript调用android代码
- Android调用JS && JS回调Android原生
- Unity3D 调用Android原生方法
- Unity3D 调用Android原生方法
- 索引简要小结
- 数据结构:队列
- coding小记:np.random.randn与tf.random_normal
- Update your urlpatterns to be a list of django.conf.urls.url() instances instead. Django 1.10. Updat
- HTTP/FTP压力测试工具siege
- 23、JS调用Android原生代码方法
- Linux单元小结(5)
- hdfs报错之 DisallowedDatanodeException
- 大数据学习20:Maven 理解 和 spark、hadoop、hive编译
- Direct3D中的纹理映射
- 阅读学习的第一个python程序
- C++11 一致性初始化与初值列
- 互联网模式怎么赚钱?
- ios 点击穿透以及延迟300ms解决方法