当前位置:首页 > 公司荣誉 >

WebView填坑——小功能篇

编辑:北京飞炫空间展览展示有限公司 时间:2017-09-04 13:25:55阅读次数:2
WebView填坑——小功能篇

这两天负责修改了几个关于在webview中打开公司移动站的bug。本身不是很难解,网上查查都有,但是也有必要记录下来作为备忘。

Webview中上传文件

这里的效果类似在pc端上传文件效果,点击打开一个文件选择器,上传文件图片之类的。
openFileChooser()方法的重载是因为在不同系统中调用的方法参数不一样,具体看注释。
ValueCallback mUploadMessage作为成员变量的目的是我们要在打开的系统文件选择器finish()后在onActivityResult()时调用。
具体实现代码如下:

private void initWebView()webView.setWebChromeClient(new MyWebChromeClient()); private ValueCallback mUploadMessage; private class MyWebChromeClient extends WebChromeClient // js上传文件的事件捕获 // Android > 4.1.1 调用这个方法 public void openFileChooser(ValueCallback uploadMsg, String acceptType, String capture) mUploadMessage = uploadMsg; Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType(TextUtils.isEmpty(acceptType) ? "image/*" : acceptType); MobileSiteActivity.this.startActivityForResult( Intent.createChooser(intent, ToolBox.getString(R.string.web_activity_please_chooser)), MobileSiteActivity.FILECHOOSER_RESULTCODE); // 3.0 + 调用这个方法 public void openFileChooser(ValueCallback uploadMsg, String acceptType) openFileChooser(uploadMsg, acceptType, null); // Android < 3.0 调用这个方法 public void openFileChooser(ValueCallback uploadMsg) openFileChooser(uploadMsg, null); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) if (FILECHOOSER_RESULTCODE == requestCode) if (null == mUploadMessage) return; Uri result = data == null WebView当中网页中的地图为白色,不显示地图

这个问题其实就是你没有打开Javascript支持。打开就好啦~

webView.setJavaScriptEnabled(true);// 设置支持javascript脚本 WebView中跳转系统拨号键盘

举一反三,既然要打开系统拨号键盘,那邮箱,站群软件,地图也可以支持。

webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) url.startsWith("geo:") }); WebView中支持下载

这里要给WebView设置一个下载监听,监听会回调给你下载地址,这里可以打开系统浏览器去激活下载,用DownloadManger直接去下载也可以,我选择的是第一种方式,这种方式我认为比较符合用户习惯哈。

webView.setDownloadListener(new MyWebViewDownLoadListener()); private class MyWebViewDownLoadListener implements DownloadListener { @Override public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) if (null != url) Uri uri = Uri.parse(url); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); }

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:黄石网站建设 http://huangshi.45qun.com

上一篇:SERVLETJSP学习(一)——Servlet基础 、 HTTP协议 下一篇:最后一页

相关阅读