美文网首页webview与h5交互大全
WebView 实现本地资源代理

WebView 实现本地资源代理

作者: 红红胖子 | 来源:发表于2016-12-28 16:46 被阅读72次

    公司的项目需要承载h5页面,技术选型选择了Cordova框架。

    虽然利用javascriptInterface可以调用原生能力,但是Cordova已经实现了一套成熟的机制,并且提供插件机制,快速提供原生能力。所以除了部分注入对象,都使用Cordova插件。

    使用了Cordova框架,就有了一大堆Cordova的 js文件。这些js 文件一般只会因为原生能力的变动而变动,所以都是对于版本迭代来说,Cordova的js文件都是静态版本,所以可以静态保存在本地,避免页面加载过多文件;如果作为平台方,也可以避免出现业务方的Cordova资源包版本问题。

    拦截资源方法

    在Android上,webview 依赖WebViewClient,当有资源请求时,会调用shouldInterceptRequest这个方法,我们也是在这里做拦截。如下面两张图,只要在与前端商量好地址的规则,拦截对应规则的资源,将地址 url 转化成本地 path,生成对应WebResourceResponse就可以了,返回null则由浏览器自行处理。

    生成资源方法 生成MimeType方法

    相关文章

      网友评论

      • Sample_610a:请问你所谓的资源代理是所有的资源吗?
        事实上我发现类似于mp4格式的视频资源,就无法进行本地代理

      本文标题:WebView 实现本地资源代理

      本文链接:https://www.haomeiwen.com/subject/vdiyvttx.html