AndroidWebView和Javascript交互


[toc]


摘要:

Android 的 webview 是基于 webkit 内核的,webview 中集成了js与java互调的接口函数,通过addJavascriptInterface方法, 可以将Java的类注册进webkit,给网页上的js进行调用,而且还可以通过loadUrl方法是给webkit传递一个uri,供浏览器来进行解析, 实现Java和js交互。

Android与javascript交互核心实现:

Java核心代码:

1
2
3
4
5
6
7
8
9
10

WebSettings webSettings = webview.getSettings();
//设置支持javascript
webSettings.setJavaScriptEnabled(true);
// 编码方式
webSettings.setDefaultTextEncodingName("utf-8");
//jsObj只是一个桥接对象,可以任意定义
webview.addJavascriptInterface(mJsInterface, "jsObj");
//加载assets下面的html页面
webview.loadUrl("file:///android_asset/index.html");

Java调用js的方法,只需要知道js的方法名称、参数即可

1
webview.loadUrl("javascript: jsMethod("参数")");

JavaScript调用Java的方法更简单

1
window.jsObj.androidMethod("参数");

注意:

Java中提供给javascript调用的方法必须加@JavascriptInterface注解否则会报错
(Uncaught TypeError: window.jsObj.androidMethod is not a function)

最后奉上Demo链接
Android-JavaScript交互Demo

谢谢你请我吃糖,Mua
0%