h5离线包方案
传统的 H5 技术容易受到网络环境影响,因而降低 H5 页面的性能。通过使用离线包,您可以解决该问题,同时保留 H5 的优点。
离线包 是将包括 HTML、JavaScript、CSS 等页面内静态资源打包到一个压缩包内。您预先下载该离线包到本地,然后通过客户端打开,直接从本地加载离线包,从而最大程度地摆脱网络环境对 H5 页面的影响。
方案一(ios私有api风险)
参考资料:
hybrid app web静态资源离线系统实践
android WebView拦截请求详解
iOS WebView/WKWebView 请求 资源 拦截 缓存 优化尝试 私有api,不可取
方案二(推荐)
当dsBridge遇见 Fly.js 时,将会打开一个新的世界。
正如我们所知,在浏览器中,ajax请求受同源策略限制,不能跨域请求资源。然而, Fly.js 有一个强大的功能就是支持请求重定向:将ajax请求通过任何Javascript bridge重定向到端上,并且 Fly.js 官方已经提供的 dsBridge 的 adapter, 可以非常方便的协同dsBridge一起使用。由于端上没有同源策略的限制,所以 fly.js可以请求任何域的资源。
另一个典型的使用场景是在混合APP中,由于Fly.js 可以将所有ajax请求转发到端上,所以,开发者就可以在端上进行统一的请求管理、证书校验、cookie管理、访问控制等。
详情请参考 https://github.com/wendux/fly. (DSBridge Android版 demo中包含fly.js的示例)
fly
[DSBridge-Android]https://github.com/wendux/DSBridge-Android
[DSBridge-IOS]https://github.com/wendux/DSBridge-IOS
方案三(流量包收费,若是付费用户,按人均算,不贵)
方案四(强烈推荐)
web离线技术原理
[LocalWebServer]https://www.jianshu.com/p/a69e77bf680c
方案五(不推荐)
Egret打包H5时使用跨域方案,就是将json、jpg等资源转为base64,且存储在js中。这样的弊端是游戏体积过大,只能使用旧版引擎。