目前由于我们项目的特定场景,app的主要问题在于如何做到可以频繁更新而不需要频繁发布,尤其是ios,发布app store的周期基本上是2周左右,虽然可以通过企业号解决,但是后期的打包,分发给用户仍较为麻烦,而且不是长远之计,android版本虽然可以通过自动更新的方式重新安装apk,但这种体验用户不一定能接受。这里有个方案可以参考下。
我们频繁更新的内容主要包括:
1 快速fix bug
2 快速增加新功能
3 快速发布活动
方案:
简单的说,就是在Cordova的每个页面调用一个服务器端的脚本,这个脚本可以重写和新增函数,如果发现之前写的函数有bug,那就重写这个函数,然后发布到Web服务器上。这样的话,用户安装的APP不需要重新安装,就会调用更新后的函数体中。这个方案可以通过 jQuery.getScript)函数实现
。这个函数用于通过HTTP GET形式的加载JavaScript文件并运行。可以动态加载JS文件,并在全局作用域下执行文件中的JS代码。这个js代码可以使该函数可以以异步方式加载跨域的JS文件。
具体实现:
1 比如我们的登录页对应的js是login.js,我们发现了login.js里面的foo方法逻辑有问题,那我们就再创建一个login-extend.js,里面重写了foo方法。
然后在login.js的最后加入
$.getScript”http://www.daimler.com.cn/file-server/staticFile/app/login-extend.js”);即让cordova加载完业务js之后,加载执行一段服务器的js。
2 那这样的话,增加新功能也是可以实现的,比如我们要在某个页面上加一个广告的banner,或者比如春节要修改首页的菜单图标,那我们可以调用的一个服务器端扩展js文件中在$’document’).readyfunction){ });中动态生成这个广告栏,或者动态的修改图标。
3 至于活动页面,我们依然可以动态生成一个page来实现
4 当然并不是每个页面都加扩展js,而是那些有频繁更新页面。
(整理自:http://www.cnblogs.com/zhoujg/p/4765740.html,感谢周兄分享^_^)