您的位置:首页 > 移动开发 > Android开发

23、JS调用Android原生代码方法

2017-10-10 09:57 591 查看
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以上
 
使用建议:两种方法混合使用

 
 


 
 
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息