文档章节

关于ionic的非二进制资源的云端更新

k
 kongzong
发布于 2016/05/13 21:26
字数 785
阅读 202
收藏 2
点赞 2
评论 1

所谓的云端升级,就是热分布,ionic属于cordova项目,html,js,css,图片字体等资源可以通过应用自身从服务器下载最新版本并安装,这样的好处是下载量非常小,安装接近无缝,对最终用户无干扰或极少干扰,不知不觉中系统就更新了。当然这里这种发布只是针对前面说的几类资源的更新才有效,如果cordova插件更新,则还是需要发行二进制版本,进行常规更新。


方案一览(From https://github.com/gf-rd/blog/issues/8)

Ionic deploy

http://docs.ionic.io/docs/deploy-from-scratch
默认的实现是用ionic.io自己的服务器,当然也可以换成自己的服务器来拉取新资源包

微软的code push

http://microsoft.github.io/code-push/index.html#getting_started
比起ionic 提供的deploy服务好不少。最重要是资源包是放在azure国内无压力(可更换,其次支持强制和推荐更新(可配给用户的提示更新文案changelog,支持不同的channel(dev,staging,production等。

cordova-app-loader

https://github.com/markmarijnissen/cordova-app-loader


综合考虑后,决定选择 code push方案

 

codepush实验笔记

安装code-push-cli

$ sudo npm install -g code-push -d

注册code-push

$ code-push register

A browser is being launched to authenticate your account. Follow the instructions it displays to complete your registration.

Enter your access key: xxxxxxxxxxxxx

Successfully logged-in. Your session file was written to /Users/kongzong/.code-push.config. You can run the code-push logout command at any time to delete this file and terminate your session.

新建code-push 应用

$ code-push app add myapp_android

Successfully added the "myapp_android" app, along with the following default deployments:

┌────────────┬──────────────────────────┐

│ Name       │ Deployment Key                        │

├────────────┼──────────────────────────┤

│ Production │ ********************************│

├────────────┼──────────────────────────┤

│ Staging    │ ********************************* │

└────────────┴──────────────────────────┘

建议android,ios分别创建两个应用,一个myapp_android,一个myapp_ios.

安装cordova插件

$cordova plugin add cordova-plugin-code-push

修改config.xml,填入deployment-key

<platform name="android">

    <preference name="CodePushDeploymentKey" value="YOUR-ANDROID-DEPLOYMENT-KEY" />

</platform>

<platform name="ios">

    <preference name="CodePushDeploymentKey" value="YOUR-IOS-DEPLOYMENT-KEY" />

</platform>

此处我使用Staging key,因为上传代码命令缺省用的就是Staging。

另外还要保证<access origin="*" /> 

另另外还要保证安装了whitelist插件,这个目前已经是ionic的标配了。

 

app.js里修改代码,加在run方法的 ionicPlatform.read里

$ionicPlatform.ready(function () {
//其他代码
window.codePush.sync(
  function (syncStatus) {
    switch (syncStatus) {
      // Result (final) statuses
      case SyncStatus.UP_TO_DATE:
        navigator.notification.alert("一个更新被成功从云端安装。", null, '提示', '我知道了');("一个更新被成功从云端安装。", null, '提示', '我知道了');
        break;
      case SyncStatus.ERROR:
        navigator.notification.alert("云端更新出现错误。", null, '提示', '我知道了');
        break;     
    }
  },
  {
    updateDialog: false, installMode: InstallMode.IMMEDIATE  
  }
);
//其他代码
})

这里按照我的设计,基本静默安装,只在更新成功后有一个提示。

另外此处提示发现只能使用 navigator.notification.alert,试过 toast及ionicPopup都报错,好在 alert 提示也足够了。

使用code push上传更新代码:

$ sudo code-push release-cordova toc_android android

这将会把对应的www目录上传到code-push服务器。

重新进入你的app,就会自动下载更新,更新安装完成后有一个alert提示,点确定后,你的app就更新到最新啦,是不是有点黑科技的感觉。

 

以上只是最基本的运用,但是基本满足需求,更多细节的配置可以参考官方文档

 

https://www.npmjs.com/package/cordova-plugin-code-push#installmode

http://microsoft.github.io/code-push/docs/getting-started.html

 

<<EOF>>

© 著作权归作者所有

共有 人打赏支持
k
粉丝 1
博文 9
码字总数 8383
作品 0
朝阳
程序员
加载中

评论(1)

路桥楼
路桥楼
sudo code-push release-cordova myapp_android android

代码上传到服务器。备注make
Tonge/ionic-city-index-select

#ionic-city-index-select 基于ionic实现的城市索引选择。https://git.oschina.net/tonge/ionic-city-index-select Demo 预览地址:city.tongedev.cn About 作者:Tonge 出处:微信订阅号 To......

Tonge ⋅ 2016/09/14 ⋅ 0

免费搭建移动开发服务

仅用移动开发服务:一分钱不花,开发native应用 发表于2014-02-12 10:49| 14397次阅读| 来源CSDN| 18 条评论| 作者张宁 web开发HTML5IonicjavascriptNitrous.IOGithubPhoneGapFirebase 摘要:...

longfirst ⋅ 2015/03/12 ⋅ 1

Android WebView 的三种使用方式

关于原生开发好,还是混合模式开发好,还是 套壳的方式好,在这里不是重点,没有最好的,只有相对适合的。重点是 那种方式 以最低的资源代价 适合你的业务场景,适合你的团队,根据实际情况来...

zhaiguangtao ⋅ 2016/12/14 ⋅ 0

怎样将BizTalk服务器应用程序和Service Bus Queues 和 Topics整合起来

微软BizTalk服务器使相关组织能够与贸易伙伴一起连接并跨企业扩展异构系统。Service Bus是Windows Azure的一部分,旨在提供连接、队列和路由功能,不仅仅是为云计算应用程序而且也为非云端应...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

App跨平台开发框架分析

所谓的跨平台app开发就是一套代码写完以后可以多端发布运行到各个平台,比如:安卓、iOS、web。 原生开发是一对一的,安卓、iOS需要分别写两套代码,学习成本高、开发成本高、后期维护麻烦;...

yiranhaiziqi ⋅ 2017/09/11 ⋅ 0

关于IONIC2 无法下载更新的问题。

从 my.oschina.net/u/24110/blog/750970 抄来的,有点问题但是又不知道是什么地方出错。 代码如下 import { Component } from '@angular/core'; import {AppVersion} from 'ionic-native'; ......

合肥市史河路扛把子 ⋅ 2017/01/04 ⋅ 2

Windows + Android + Cordova + ionic环境搭建

废话不多说,直接上干货: 一、ANT安装 Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。 下载地址:http://ant.apache.org/b...

刘草 ⋅ 2016/01/06 ⋅ 0

Tonge/TongeNewsApp

注:此项目服务器已经关闭,接口已无法使用。 ###前言 这是一个系列文章,从环境搭建开始讲解,包括网络数据请求,将持续更新到项目完结。实战开发中遇到的各种问题的解决方案,也都将毫无保...

Tonge ⋅ 2016/11/10 ⋅ 0

ionic助手 v1.9.0 一键式开发环境工具(告别命令行,超强功能)

ionic中文社区群:65048636 注意:使用前请确保您已经安装部署好ionic环境 搭建绿色环境:Ionic1.x 5分钟快速搭建绿色开发环境 手动搭建环境:Ionic2.x 手动搭建开发环境 有了ionic助手,再也...

ionic中文网 ⋅ 2016/11/28 ⋅ 1

Microsoft SQL Azure 常见问题解答

公告:本博客为微软云计算中文博客的镜像博客。部分文章因为博客兼容性问题,会影响阅读体验。如遇此情况,请访问原博客。 October CTP的 SQL Azure Database的关键公告是什么? October CT...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

IDEA创建SpringMVC+Mybatis+Maven项目

视频如下(加载有点慢请见谅,服务器不太好): 视频

影狼 ⋅ 8分钟前 ⋅ 0

前阿里P8架构师:精准定制Java架构师学习计划!

可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,除了掌握J...

java高级架构牛人 ⋅ 10分钟前 ⋅ 0

zookeper学习

https://blog.csdn.net/u012152619/article/category/6470028

~少司命~ ⋅ 12分钟前 ⋅ 0

Spring MVC ,JSON,JQuery,不懂JQuery,跳过了

/spring-mvc-study/src/main/webapp/course_json.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD ......

颖伙虫 ⋅ 12分钟前 ⋅ 0

2018上海云栖大会workshop-日志数据采集与分析对接

摘要: 日志数据采集与分析对接 课程描述 通过日志服务采集用户、数据库、业务等访问数据。演示对于业务日志分析与处理,程序日志查询与监控,打通日志与数据仓库对接案例。 日志种类 网站访...

阿里云云栖社区 ⋅ 13分钟前 ⋅ 0

mahout demo

package com.datamine.CollaborativeFiltering.mysql; import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood; import org.apache.mahout.cf.taste.impl.recommend......

xiaomin0322 ⋅ 14分钟前 ⋅ 0

red hat openstack 12配置要求

安装 openstack 之前,一般要规划整个系统中,到底要多少台机器来参与openstack, 根据rhosp12的官方文档: 最低要求是3台物理机,1台作为director,一台作为 controller ,一台作为computer....

tututu_jiang ⋅ 16分钟前 ⋅ 0

Rocket-Chip在GitHub上的各个源码

在github上通过搜索Rocket-chip可以得到36个结果:其中 https://github.com/freechipsproject/rocket-chip https://github.com/ucb-bar/riscv-boom https://github.com/ucb-bar/fpga-zynq (......

whoisliang ⋅ 21分钟前 ⋅ 0

【HAVENT原创】CentOS 6.5 下 Nginx 的安装与配置

nginx是轻量级的Web服务器、反向代理服务器及邮件服务器,具有占用内存少,并发能力强的优点,已被广泛应用。本文介绍目前最新版本 1.12.2 的安装。 各版本nginx下载地址:http://nginx.org/...

HAVENT ⋅ 27分钟前 ⋅ 0

查看linux系统重启之前的log -- last_kmsg

当 Linux Kernel 出现 BUG 的时候,后走入 panic flow,这个时候由于 Kernel 出现了严重的问题,adbd 也无法响应 adb 连接请求,这个时候想透过读取 Kernel Log Buffer 来看 Kernel Log 是不...

zyzzu ⋅ 28分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部