前言
目录交互方式总结Android与JS通过WebView互相调用方法,实际上是:
对于Android调用JS代码的方法有2种:
对于JS调用Android代码的方法有3种:
具体分析Android通过WebView调用 JS 代码对于Android调用JS代码的方法有2种:
方式1:通过WebView的loadUrl()
需要加载JS代码:JavaScript.html
Android代码:MainActivity.Java
特别注意:JS代码调用一定要在 onPageFinished() 回调之后才能调用,否则不会调用。
方式2:通过WebView的evaluateJavascript()
方法对比使用建议两种方法混合使用,即Android 4.4以下使用方法1,Android 4.4以上方法2 JS通过WebView调用 Android 代码对于JS调用Android代码的方法有3种:
方法分析方式1:通过 WebView的addJavascriptInte**ce()进行对象映射
AndroidtoJs.java(注释已经非常清楚)
需要加载JS代码:javascript.html
特点
方式2:通过 WebViewClient 的方法shouldOverrideUrlLoading ()回调拦截 url
JS代码:javascript.html
当该JS通过Android的mWebView.loadUrl(“file:///android_asset/javascript.html”)加载后,就会回调shouldOverrideUrlLoading (),接下来继续看步骤2:
MainActivity.java 特点
方式3:通过 WebChromeClient 的onJsAlert()、onJsConfirm()、onJsPrompt()方法回调拦截JS对话框alert()、confirm()、prompt() 消息 在JS中,有三个常用的对话框方法: 方式3的原理:Android通过 WebChromeClient 的onJsAlert()、onJsConfirm()、onJsPrompt()方法回调分别拦截JS对话框 下面的例子将用拦截 JS的输入框(即prompt()方法)说明 :
javascript.html
当使用mWebView.loadUrl(“file:///android_asset/javascript.html”)加载了上述JS代码后,就会触发回调onJsPrompt(),具体如下:
三种方式的对比 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|