在webview开发中,往往不止简单的加载一个页面显示那么简单,常常有将手机本地的数据放到html上显示和将html上操作的数据保存到手机本地的情况,那么如何实现这种数据交互呢:
一:webvie部份:
final String json="{title1:孔子,title2:孟子,title3:庄子}";
wv_webview.addJavascriptInterface(new Object() {
//@param message: html页面传进来的数据
@JavascriptInterface
public String getLocationData(String message) {
Toast.makeText(MainActivity.this, message, 1).show();
return json; // 把本地数据弄成json串,传给html
}
}, "MyBrowserAPI");//MyBrowserAPI:自定义的js函数名
wv_webview.loadUrl("file:///android_asset/index.html");
二:html部分:
<title>测试手机和页面之间的数据传递</title>
<script language="javascript">
function showjson(json){
document.getElementById("test").innerHTML=json;
}
function getData(){ //调用Android中自定义的拍照JavaScript接口
var json=window.MyBrowserAPI.getLocationData("从页面传给手机的message");//拿到本地数据,并可以传给手机一些内容,可选
showjson(json); //在页面上显示出结果
}
</script>
</head>
<body>
<div>
<input value="点我试试" type="button" onclick="getData()"/>
</div>
<div>
<p id="test">没有数据</p>
</div>
</body>
OK!就是这么简单…