受限于AppStore的审核制度,版本提交后审核后需要等待一段审核时间才能上线,于是聪明的开发者就想出了一些手段,可以避开审核,动态更新客户端。
目前,已经被使用的技术方案有两大派:
1.HTML5
2.解析渲染
先说HTML5,其实这项功能在开发者中使用还是比较多的,目前主流的特别动态的页面,大部分还是由HTML5实现完成,比如淘宝的一些介绍页面、一些不能明确当前样式的界面等等。也有类似PhoneGap这样的框架直接把HTML5做的应用打包成原生应用,虽然比较灵活,可惜体验上相比原生确实差了不少。
再说解析渲染,关于这个还要分低端版、中端版和高端版。
低端版:简单的特定的控制字段解析,比如控制一个按钮是否显示,控制一个功能是否开放等等,这种做法需要提前客户端和服务端双方做好约定,对得上号才能正常工作。
如果要加新的控制,对不起请下一版本吧。不过应对小范围的控制,还是可以的,也是目前用的比较多的方式。
中端版:利用脚本动态加载代码,达到创建和改变类功能和属性的目的。代表有大众点评基于Wax修改的WaxPatch框架,利用Lua脚本+runtime方法实现,不过由于语言和功能的问题,貌似并没有大范围普及开,不过各位小范围打补丁的时候可以尝试。
高端版:近期Facebook又开始折腾了,开源了React Native,基于JS做的一次比较大的尝试,和普通的HTML5的区别在于:Facebook通过自己强大的开发团队,做了一套JS->原生控件的映射,要注意并不是性能比较弱的WebView,这点上不得不佩服他们,目前该组件刚刚开源不久,具体效果有待验证,但是我相信未来会有它一席之地。
本文仅仅是抛砖引玉,欢迎更多的人留言拍砖讨论。
原文地址:http://blog.csdn.net/u010124617/article/details/44708327