在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!就是這麼簡單…