请教 native 和 h5 混合开发的问题

2016-12-16 10:03:18 +08:00
 pcatzj

现在遇到一个问题,某 APP 混杂着 native 和 h5 的页面,但是现在遇到一个问题, h5 和 native 如何保持版本一致?用户如果没有更新 APP ,但是 web 端的界面已经更新了,导致某些功能出现偏差,对于这种问题,有没有什么好的解决办法?

12364 次点击
所在节点    Android
45 条回复
TimCheng
2016-12-16 10:12:48 +08:00
现在 APP 里面应该是一个 HTML5 的地址链接吗?
yangg
2016-12-16 10:14:30 +08:00
1. 判断 native 是否支持某个接口 ,再决定 h5 的功能及界面
2. 判断版本
PennyLee
2016-12-16 10:15:09 +08:00
h5 逻辑要做版本控制的。。
pcatzj
2016-12-16 10:35:05 +08:00
@PennyLee 大概的思路呢?因为我不是做 h5 的,所以能不能稍微解释下
qiayue
2016-12-16 10:37:48 +08:00
难道不是 HTML5 页面根据 APP 的版本号显示不同的版本吗?
eclipselu
2016-12-16 10:38:39 +08:00
PennyLee
2016-12-16 10:39:42 +08:00
@pcatzj

1. h5 里面获取 native 版本
2. 针对不同版本写不同逻辑
pcatzj
2016-12-16 13:24:22 +08:00
@PennyLee
@qiayue
是吧,应该是这样吧,我也觉得应该是这样,可是他们竟然想到了版本不对就强制更新的招!!!
pcatzj
2016-12-16 13:27:59 +08:00
@yangg 就是和楼下说的差不多,根据 native 的版本控制逻辑?
pcatzj
2016-12-16 13:28:24 +08:00
@TimCheng ???就是 webview 加载一个个网页
pcatzj
2016-12-16 13:33:19 +08:00
@eclipselu 收藏了,但是现在要部署这个框架,估计够呛,毕竟。。。额。。。大概你懂?
yyy
2016-12-16 14:14:30 +08:00
我们的做法是,根据 APP 的版本, HTML5 也有对应的版本
TimCheng
2016-12-16 16:15:56 +08:00
@pcatzj 首先如果是 Web 端更新的话,在 Webview 中一定会更新的。但是因为更新完之后造成样式或者功能的偏差,这个只能用 Native 调整。 Native 是基础,不然 Web 写的再好也是白瞎!
pcatzj
2016-12-16 16:20:27 +08:00
@yyy 那就有多套 HTML 代码?
pcatzj
2016-12-16 16:20:44 +08:00
@TimCheng 怎么调整呢?
wobuhuicode
2016-12-16 16:36:58 +08:00
版本控制肯定要啊!
我的做法: H5 的静态资源由 native 请求,并且插入。
pcatzj
2016-12-16 17:04:11 +08:00
@wobuhuicode 这听着有点复杂啊,但是关键的是功能啊,功能的差异才是最想要规避的。在功能入口加入版本判断如何?
yyy
2016-12-16 17:19:00 +08:00
@pcatzj 用 git 管理版本比如 2.0.0 、 3.0.0 。因为你要考虑一个问题:旧版本的 APP 不支持一些接口的时候,你不把 HTML5 划分一个版本的话,兼容性怎么解决?如果显式判断版本号,将来维护起来会不会很麻烦?所以现在都分版本。
wobuhuicode
2016-12-16 17:21:48 +08:00
@pcatzj
1.页面的内容都是由 JS 生成(采用了 react/vue )
2.页面和后台采用全 AJAX 通信
这两步就解放了 HTML !版本号只需在静态文件下手就好了。
3. APP 打包的时候把静态文件打包进去
4. APP 端请求页面(页面内是不引入 js/css/image),自己插入静态文件(css/js)
这两步保证了静态文件的引入控制,也避免了大块静态文件在使用的时候才下载。
5. 设置一个时间点去让 APP 请求服务器更新对应 APP 版本的静态文件。
pcatzj
2016-12-16 17:55:26 +08:00
@yyy 但是应用怎么获取 git 分支代码?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/328012

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX