日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cordova 更改app版本_ionic项目中使用cordova-hot-code-push插件

發布時間:2024/10/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cordova 更改app版本_ionic项目中使用cordova-hot-code-push插件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

例子源碼參見我的github:zhangzhaojun/chcp-manual-demo

使用cordova-hot-code-push插件的方法如下:

1、如下命令創建一個項目:

$ ionic start myNewProject blank

2、進入項目目錄并添加平臺支持:

$ cd myNewProject $ ionic cordova platform add android@6.1.2

注意:cordova platform add android前面必須加上ionic,否則出現如下錯誤提示:

Error: Current working directory is not a Cordova-based project.

3、如下命令添加cordova-hot-code-push插件:

$ ionic cordova plugin add cordova-hot-code-push-plugin

4、執行以下命令初始化插件:

$ cordova-hcp init

上圖中的url輸錯了,應是http://123.207.88.149/www

5、打開config.xml,添加如下代碼:

<chcp> <config-file url="http://123.207.88.149/www/chcp.json"/> </chcp>

6、執行以下命令生成APK:

$ ionic cordova build android --prod --release

7、執行以下命令生成chcp.json和chcp.manifest文件,生成的文件位于www目錄下:

$cordova-hcp build

說明:chcp.json和chcp.manifest文件在打包時會打包進APK。目前兩個文件的內容如下:

chcp.json的內容如下,它列出了當前版本發布的時間("release": "2017.12.18-19.29.19"):

{ "name": "chcp-manual-demo", "ios_identifier": "", "android_identifier": "", "update": "resume", "content_url": "http://123.207.88.149/www", "release": "2017.12.18-19.29.19" }

chcp.manifest的內容如下,它列出了www目錄下的所有文件及每個文件此刻的hash值:

[ {"file": "assets/fonts/ionicons.eot","hash": "bdf1d30681cf87986c385eea78e8de9a" }, {"file": "assets/fonts/ionicons.scss","hash": "c1fdfabf9cbd412b444f064d27641f10" }, {"file": "assets/fonts/ionicons.svg","hash": "d9496a234c81179afbca6bf5959cc30a" }, ... ]

8、執行如下命令,重新打包成apk文件,這時候的apk就包括了上面的chcp.json和chcp.manifest文件了,然后將apk簽名并安裝到手機:

$ ionic cordova build android --prod --release

9、對app的源文件進行修改,然后再執行如下命令:

$ ionic cordova build android --prod --release $cordova-hcp build $ ionic cordova build android --prod --release

然后將此時www目錄拷貝到http://123.207.88.149/下。然后對nginx進行配置,我用的是騰訊的云服務器,進入云服務器的控制臺,進入/etc/nginx/sites-enabled目錄后,$ sudo vim default進行配置:

ubuntu@VM-0-14-ubuntu:/etc/nginx/sites-enabled$ sudo vim default

圖示如下:

上圖中的

location /www/ {try_files $uri =404; }

就是我們添加的內容。

至此,當我們的app從后臺恢復到前臺運行時就會自動檢測并下載安裝更新了。

10、但是當我們給app增加了新的插件的話,我們就只能通過提示讓用戶手動到相應地址下載更新了。方法如下:

10.1 在config.xml添加<native-interface version="1" />,這里1為當前版本號。如下所示:

<chcp> <config-file url="http://123.207.88.149/www/chcp.json" /> <native-interface version="1" /> </chcp>

10.2 在cordova-hcp.json中添加"min_native_interface": 1,如下所示:

{ "name": "chcp-manual-demo", "ios_identifier": "", "android_identifier": "http://www.zhikeji.top/xxx.zip", "update": "resume", "content_url": "http://123.207.88.149/www", "min_native_interface": 1 }

10.3 在app.component.ts中增加支持外殼更新的功能,代碼詳見我的github倉庫。

接下來項目根目錄下依次執行:

$ ionic cordova build android --prod --release $ cordova-hcp build $ ionic cordova build android --prod --release

然后把生成的apk簽名及安裝到手機。

之后把www文件夾上傳到http://123.207.88.149/即可。

10.3 每當我們給app增加了插件后,我們只需要將cordova-hcp.json中"min_native_interface": 1的1增加為2,將config.xml中的<native-interface version="1" />相應改為<native-interface version="2" />即可,然后執行:

$ ionic cordova build android --prod --release $ cordova-hcp build $ ionic cordova build android --prod --release

之后把www文件夾上傳到http://123.207.88.149/即可實現外殼更新提示。

熱更新原理:手機上的app根據自身config.xml中<config-file url="http://123.207.88.149/chcp.json"/>下載http://123.207.88.149/chcp.json文件并與app自身的chcp.json中"release": "2017.12.18-19.29.19"對比,如果時間比自己的新,則根據app自身中的chcp.json中的"content_url": "http://123.207.88.149/www"中的content_url的值到http://123.207.88.149/www下載chcp.manifest并與自身chcp.manifest對比,對于hash值不同的文件,app將從http://123.207.88.149/www下載并更新。當服務器上的chcp.json中的"min_native_interface"的值大于手機app中config.xml中的<native-interface version=的值時,代表需要外殼更新,這時就會提示用戶手動前往下載安裝更新。

注意:每次版本的更新,生成的apk文件名中最后包含相應的版本號數字,以便區分。另config.xml中<widget id="http://io.zzj.xxx" version="2.3.3"這的版本號也同時修改。

總結

以上是生活随笔為你收集整理的cordova 更改app版本_ionic项目中使用cordova-hot-code-push插件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。