美文网首页
WebView和JS 交互

WebView和JS 交互

作者: Keike | 来源:发表于2017-06-15 14:57 被阅读54次

  • 注册JS调用的方法(H5调用WebView)
//注意如果出现undefined 接受的参数1、是没有标注 @JavascriptInterface
//  2、是H5 没有调用window.registerName.method(content)  注意window.
public class ClassName {
       @JavascriptInterface
       public void method(final String content) {
           runOnUiThread(new Runnable() {
 
       }
  }
//注册类名字
 webView.getSettings().setJavaScriptEnabled(true);
 webView.addJavascriptInterface(new className(),"registerName");
  • 编写调用JS的方法(Webview调用H5并获得返回值)
//method :JS 提供的方法名字
// webView.loadUrl("javascript:stop()");     19版本之前
//19(包括19版本)之后,需要兼容性。
webView.evaluateJavascript(("javascript:method()"), new ValueCallback<String>() {
                    @Override
                    public void onReceiveValue(String responseJson) {
                   
                });

*H5需要保存数据持久化(比如需要用户登录信息)

//这个是打开本地持久化
webView.getSettings().setDomStorageEnabled(true);
//还有一种是加载https的URL时在5.0以上加载不了,5.0以下可以加载,这种情况可能是网页中存在非https得资源,在5.0以上是默认关闭,需要设置,
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
  • 与后台进行交互的数据,一般采用JSON ,确保H5返回的格式正确。
  • android 这边不支持H5原生Alert的调用,所以需要H5自己写的组建,最好不要这边拦截处理Alert事件,因为这样就失去了H5移动端开发的意义。

相关文章

网友评论

      本文标题:WebView和JS 交互

      本文链接:https://www.haomeiwen.com/subject/wszyqxtx.html