webView选择图片遇到的坑

1.兼容问题

2.上传至服务器后缀不正确

3.上传至服务器失败

4.去除webview默认提示框上的标题

最近项目需要用webView加载一个网页,之前此网页是在微信端加载的,现在放到我们的APP中。网页中有选择图片并上传的功能,但是碰到很多坑。

1.兼容问题

这个自行百度无非就是重写WebChromeClient里的几个方法webView选择图片遇到的坑_第1张图片

其中webCall不用管,是我的回调。然后重写Activity的onActivityResult方法接收到uri,调用onReceiveValue就行了

2.上传至服务器后缀不正确webView选择图片遇到的坑_第2张图片

因为服务器对文件的后缀有判断,而我们获取的uri可能是这样的content://media/external/images/media/231321。截取最后面就没有了图片格式,这是不行的。因此,使用此方法转化一下(代码是网上百度的)

webView选择图片遇到的坑_第3张图片

那么,拿着转换后的uri上传就不会有问题啦(InstallApkUtils.getUri方法不用管,是为了解决这个问题的点击打开链接)

webView选择图片遇到的坑_第4张图片

3上传至服务器失败

webView选择图片遇到的坑_第5张图片
因为服务器的js文件中使用h5中的localStorage,客户端的webview默认不支持,改下就好啦
webView选择图片遇到的坑_第6张图片

4.去除webview默认提示框上的标题

这个百度百度就好了,重写 WebChromeClient的这两个方法,返回自己写的Dialog
webView选择图片遇到的坑_第7张图片
最后Demo献上点击打开链接(最近积分不够了,赚点分,只需1个积分哦)

你可能感兴趣的:(安卓)