ionic android 版本号,ionic实现android平台下的自动更新

以下是针对该插件在android平台下面的应用的心得体会

使用过程

执行一下命令安装应用更新的插件,版本获取的插件与打开系统浏览器的插件.

下面两个插件的安装跟ionic的版本相关,参考我的另一篇文章

本文以ionic3为例

//获取版本号

$ ionic cordova plugin add cordova-plugin-app-version

$ npm install --save @ionic-native/app-version@4

//浏览器打开apk

$ ionic cordova plugin add cordova-plugin-inappbrowser

$ npm install --save @ionic-native/in-app-browser@4

//比较版本并更新apk

$ ionic cordova plugin add cordova-plugin-app-update

$ npm install --save @ionic-native/app-update@4

命令行安装的app-udate插件直接使用会报Application Err的错误,后来根据No刹那光辉的 ionic3 程序更新的文档,将插件先下载到本地,然后修改了插件中DownloadHandler.java文件,不过安装这个插件的时候就需要添加插件在本地的路径了,注意这一点。

修改后:

// 通过Intent安装APK文件

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){

LOG.d(TAG, "Build SDK Greater than or equal to Nougat");

// String applicationId = (String) BuildHelper.getBuildConfigValue(cordova.getActivity(), "APPLICATION_ID");

String applicationId = (String) BuildHelper.getBuildConfigValue((Activity) mContext, "APPLICATION_ID");

Uri apkUri = FileProvider.getUriForFile(mContext, applicationId + ".appupdate.provider", apkFile);

Intent i = new Intent(Intent.ACTION_INSTALL_PACKAGE);

i.setData(apkUri);

i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

mContext.startActivity(i);

}else{

LOG.d(TAG, "Build SDK less than Nougat");

Intent i = new Intent(Intent.ACTION_VIEW);

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

i.setDataAndType(Uri.parse("file://" + apkFile.toString()), "application/vnd.android.package-archive");

mContext.startActivity(i);

}

302048

name

http://localhost:8080/android.apk

如果应用有更新,首先需要修改这个xml文件中的version数字,然后替换url路径里面的apk文件。

注意,路径是写死的,所以每次的apk都要放在url这个路径下,如果有更改,则xml文件也要相应的修改。

version标签中的数字与应用的版本号格式不同,需要通过获取版本号插件中的getVersionCode方法将应用的版本号转换而来,如下:

var versionCode:string = "";

this.appVersion.getVersionCode().then((value: string) => {

versionCode = value;

console.log('getVersionNumber:' + value);

}).catch(err => {

console.log('getVersionNumber:' + err);

});

versionCode就是需要填入的数字

调用方法如下:

在app.module.ts中导入插件,并添加到providers中

import { AppVersion} from '@ionic-native/app-version';

import { AppUpdate } from '@ionic-native/app-update';

import { InAppBrowser } from '@ionic-native/in-app-browser';

调用

let str ="http://localhost:8080/Untitled-1.xm"

this.appUpdate.checkAppUpdate(str).then(data => {

console.log(data);

}, (err) => {

console.log(err);

});

更改服务器上面的xml文件的版本号,来实现自动更新的功能。

更新:

不安装获取版本号的方法也可以,在config.xml配置文件里的widget标签里面,添加 android-versionCode="2" ,检测更新的插件实际上是跟这个versionCode进行比较,从而判断是否更新的,这样每次更改配置文件中的这个变量就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值