项目要用到Webview和js交互,查了查以前的项目感觉还是有必要整理下的。
简单描述下项目中用到的地方,比如说在web页需要用到登录的地方点击登录跳转到APP原生登录界面去登录,点击web页的拨打电话弹出原生dialog询问是否拨打,点击web页里面的图片进行放大处理。针对于上述的需求我们通用的方式大概有两种,一是监听a标签,在shouldOverrideUrlLoading根据URL进行判断,二是js代码注入,找到我们想要处理的元素进行js代码注入。下面就这两种方式简单的进行描述
首先需要初始化WebView以及设置支持JavaScript,常用的配置属性有一下几种,可以在项目中根据需求添加
WebSettings webSetting = webView.getSettings();
// 支持JavaScript
webSetting.setJavaScriptEnabled(true);
// 设置可以访问文件s
webSetting.setAllowFileAccess(true);
// 告诉javascript来自动打开的窗口。这适用于JavaScript函数的窗口,open()。
webSetting.setJavaScriptCanOpenWindowsAutomatically(true);
// 支持缩放
webSetting.setSupportZoom(true);
// 是否禁止是网络加载数据
webSetting.setBlockNetworkLoads(false);
// 设置是否支持多窗口
webSetting.setSupportMultipleWindows(true);
// 是否开启本地DOM存储