美文网首页
WebView和JS交互

WebView和JS交互

作者: 浮名虚誉架构师 | 来源:发表于2017-09-13 14:09 被阅读0次

Android端调用js

使用loadUrl(1. 会刷新页面 2. 无法获取 js 方法执行结果)

mWebview.loadUrl("javascript: func()");

使用evaluateJavascript(1. 性能好 2. 可获取 js 执行后的返回值  3.仅在安卓 4.4 以上可用)

mWebview.evaluateJavascript("javascript: func()", new ValueCallback() {

@Override

    public void onReceiveValue(String value) {

return;

    }

});

js调用Android端

1.定义一个与JS对象映射关系的Android类:AndroidtoJs

public class AndroidtoJsextends Object {

// 定义JS需要调用的方法

// 被JS调用的方法必须加入@JavascriptInterface注解

    @JavascriptInterface

public void hello(String msg) {

System.out.println("JS调用了Android的hello方法");

    }

}

2.在activity中的webview添加Android类与JS代码的映射

webview = findViewById(R.id.webview);

WebSettings webSettings = webview.getSettings();

// 设置与Js交互的权限

webSettings.setJavaScriptEnabled(true);//--------------- 这个要设置 要不会执行方法

webview.loadUrl("file:///android_asset/javascript1.html");

// 通过addJavascriptInterface()将Java对象映射到JS对象,参数1:Javascript对象名,参数2:Java对象名

webview.addJavascriptInterface(new AndroidtoJs(), "test");//AndroidtoJS类对象映射到js的test对象

3.js中调用AndroidtoJs@JavascriptInterface修饰的方法

<script>function callAndroid(){ test.hello("js调用了android中的hello方法"); }</script>

相关文章

网友评论

      本文标题:WebView和JS交互

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