参考博客
(一)Android端调用H5页面
在Android端主要使用WebView来进行网页的加载,设置属性
// 获取WebSetting对象
WebSettings webSettings = webview.getSettings();
// 设置支持javascript
webSettings.setJavaScriptEnabled(true);
// 将Android里面定义的类对象AndroidJs暴露给
javascript webview.addJavascriptInterface(new AndroidJs(MainActivity.this), "AndroidJs");
调用方式:其中doAlert为H5页面的方法
webview.loadUrl("javascript:doAlert()");
(二)H5端调用Android页面
H5端代码:
<input type="button" value="打招呼" onclick="AndroidJs.showToast()"/>
<input type="button" value="图书列表" onclick="AndroidJs.showList()"/>
Android端代码:
public class AndroidJs {
private Context mContext;
public AndroidJs(Context context) {
this.mContext = context;
}
@JavascriptInterface public void showList() { new AlertDialog.Builder(mContext)
.setTitle("图书列表")
.setIcon(R.mipmap.ic_launcher)
.setItems( new String[]{"疯狂java讲义", "疯狂Android讲义", "轻量级java EE开发"}, null)
.setPositiveButton("确定", null).create().show();
}
@JavascriptInterface public void showToast() {
Toast.makeText(mContext, "hello", Toast.LENGTH_LONG).show();
}
}
注:AndroidJs是连接Android与Html的桥梁标识,也是一个进行数据交互的类;
注:这里面的方法必须是共有的,类名与标识保持一致;
允许使用h5 使用 localStorage
/***打开本地缓存提供JS调用**/
browser.getSettings().setDomStorageEnabled(true);
// Set cache size to 8 mb by default. should be more than enough
browser.getSettings().setAppCacheMaxSize(1024*1024*8);
网友评论