目前由于我们项目的特定场景,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').ready(function(){   });中动态生成这个广告栏,或者动态的修改图标。
 
3 至于活动页面,我们依然可以动态生成一个page来实现
 
4 当然并不是每个页面都加扩展js,而是那些有频繁更新页面。
 
(整理自:http://www.cnblogs.com/zhoujg/p/4765740.html,感谢周兄分享^_^) 

解决app频繁更新方案的更多相关文章

  1. APP热更新方案

    为什么要做热更新 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App.测试.向各个应用市场和渠道换包.提示用户升级.用户下载.覆盖安装. 重 ...

  2. APP热更新方案(转)

    本文转载自[http://creator.cnblogs.com/] 博客地址:Zealot Yin 为什么要做热更新 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就 ...

  3. 移动端APP热更新方案(iOS+Android)

    出自:http://www.cnblogs.com/Creator/p/7007694.html 为什么要做热更新 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙 ...

  4. 移动端热更新方案(iOS+Android)

    PPT资源包含iOS+Android 各种方案分析:https://github.com/qiyer/Share/blob/master/%E7%83%AD%E6%9B%B4%E6%96%B0%E5% ...

  5. 解决“iOS 7 app自动更新,无法在app中向用户展示更新内容”问题

    转自cocoachina iOS 7能在后台自动app,这对开发者来说和用户都很方便,但是还是有一些缺点.用户不会知道app本次更新的内容,除非他们上到app的App Store页面去查看.开发者也会 ...

  6. 使用Mac App Store更新、下载软件时出现未知错误的解决方法

    很多果迷在使用 Mac App Store 更新/下载软件时,可能都曾被”未知错误”困扰过,怎么解决也不行.然而,过一段时间不知道做了什么又自己好了.今天我们提供两个解决这个问题的方法,下次遇到这个问 ...

  7. 基于Quick-cocos2d-x的资源更新方案 二

    写在前面 又是12点半了,对于一个程序员来说,这是一个黄金时间,精力旺盛,我想,是最适合整理和分享一些思路的时候了. 自从上次写了 基于Quick-cocos2d-x的资源更新方案 同样可见quick ...

  8. Unity3D 热更新方案(集合各位专家的汇总)

    http://blog.csdn.net/guofeng526/article/details/52662994 热更新”这个词,在Unity3D的应用下,是有些语义错误的,但是作为大家都熟知的一项技 ...

  9. iOS论App推送方案

    1.APNS介绍(原生推送实现原理) 在iOS平台上,大部分应用是不允许在后台运行并连接网络的.在应用没有被运行的时候,只能通过 Apple Push Notification Service (AP ...

随机推荐

  1. String Format for Double [C#]

    转载:http://www.csharp-examples.net/string-format-double/ he following examples show how to format flo ...

  2. 【Ansible】 各种模块

    [Ansible 模块] 就如python库一样,ansible的模块也分成了基本模块和第三方拓展模块(自定义的模块).这些模块其实才是作为真实的逻辑载体,在帮助ansible进行作业. ansibl ...

  3. Vue路由获取路由参数

    vue路由设置路由参数有2种方式: 1.通过query配置: <router-link :to="{ name:'login',query:{id:1} }">登录&l ...

  4. Windows Server 2012 任务管理器“性能”Tab页显示磁盘信息

    最新文章:Virson's Blog Win+x,以管理员身份运行“命令提示符”(Cmd),输入diskperf -y,确定即可,如下图.

  5. (笔记)Mysql命令mysqladmin:修改用户密码

    mysqladmin命令用于修改用户密码. mysqladmin命令格式:mysqladmin -u 用户名 -p 旧密码 password 新密码 1) 给root加个密码ab12首先在DOS下进入 ...

  6. Spring JDBC对象批量操作

    以下示例将演示如何使用spring jdbc中的对象进行批量更新.我们将在单次批次操作中更新student表中的记录. student表的结果如下 - CREATE TABLE student( id ...

  7. unity---Courtine 协程

    尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 记得去年6月份刚开始实习的时候,当时要我写网络层的结构,用到了协程,当时有点懵,完全不知道Unity协程的执行机制是 ...

  8. ubuntu -- 系统目录结构

    1./:目录属于根目录,是所有目录的绝对路径的起始点,Ubuntu 中的所有文件和目录都在跟目录下. 2./etc:此目录非常重要,绝大多数系统和相关服务的配置文件都保存在这里,这个目录的内容一般只能 ...

  9. 手机web——自适应网页设计(html/css控制)http://mobile.51cto.com/ahot-409516.htm

    http://mobile.51cto.com/ahot-409516.htm 一. 允许网页宽度自动调整: "自适应网页设计"到底是怎么做到的? 其实并不难. 首先,在网页代码的 ...

  10. 如​何​屏​蔽​C​h​r​o​m​e​、​S​a​f​a​r​i​等​W​e​b​k​i​t​内​核​浏​览​器​文​本​框​和​文​本​域​的​高​亮​边​框​、​可​变​大​小​等​自​动​外​观​处​理

    1.高亮外框的取消 input { outline: none; } textarea { outline: none; } 如上,使用CSS的outline就可以实现 2.文本域缩放功能的取消 也是 ...