Closed karosLi closed 4 years ago
同问
在问题中你提到了大厂,对于资讯内容页展示来说大部分是使用你说的第二种方式,可以对目前头部的资讯App抓包看下,大多都是增加活修改了自定义的Scheme前缀。那么对于其他的H5页面,也是需要H5配合的,类似的H5优化方案比如VasSonic,都是需要前后端一起配合的。
毕竟大厂的H5页面都有对应的开发团队在维护,同时使用离线包方案的页面大多都是部门/团队内自己的页面,协作起来也比较方便。
如果是第三方的抓取/三方应用页面等,这种方案暂时不能满足,可以考虑使用私有函数拦截HTTP/HTTPS请求来处理。
不是很清楚,大厂都是怎么使用 LocalWebServer 来支持离线包的,下面是我想的一些思路: 1、把本地服务器的地址放在请求头里,然后服务器端渲染,如果是来自app的请求,把所有src的host改成 app 本地服务的localhost。只是这种方式也对后续异步渲染和懒加载JS就不太好支持了。 2、服务器端渲染返回 src='customScheme://',然后 urlprotocol 这拦截 customScheme 的请求,也不会引起 http ajax 丢失 body。
自己也觉得这两种方式,实际上都需要服务器端配合,另外还需要H5业务方去配合支持后续的src的改动。 成本上是有点高的,如果是不要服务器端配合,那至少也是需要 H5业务放配合把所有加载图片和脚本的地方,都要使用JS动态借助Native能力去加载,可是这样会破坏H5的原有结构。
能请教下还有什么更好的思路吗?