热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何用WebView加载一个通过ContentProvider获取的页面?

在我的app中,我需要将一些HTML,JS,CSS文件打包放入apk中。其中使用了WebView来加载这些页面。但是这里由于内部逻辑需要,我必须拦截所有WebView加载的资源,来进行修改,将修

在我的app中,我需要将一些HTML,JS,CSS文件打包放入apk中。其中使用了WebView来加载这些页面。但是这里由于内部逻辑需要,我必须拦截所有WebView加载的资源,来进行修改,将修改之后的stream传递给WebView。



于是我使用了ContentProvider机制。当使用WebView中的loadUrl方法时,传入的参数采用自定义的ContentProvider协议头作为文件的前缀。于是ContentProvider中的openAssetFile就会执行,然后我在其中进行修改,然后将修改后的流返回给WebView。这样WebView展示出来的就是ContentProvider中修改之后文件stream。

问题来了:上述逻辑在之前是运行正常的。直到最近通过GooglePlay升级了WebView版本到76+的时候,出现了问题。上述逻辑依然会执行,但是App会弹出一个选择打开其他App的请求。看起来像是,WebView无法识别这个自定义的ContentProvider协议,所以需要将此协议的文件转发给系统来处理了。



请问有人知道WebView76+版本有什么相关改动吗?非常感谢!


   



推荐阅读
author-avatar
镜头拿反的葛小峥给_523
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有