账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何用WebView加载一个通过ContentProvider获取的页面?
    • 2020-01-01 00:00
    • 11
    23
    0

    在我的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+版本有什么相关改动吗?非常感谢!

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部