ionic3-监听版本自动更新
依赖 version、Transfer、file、opener2
version获取本地app相关信息(当前版本号,app名称等等)
$ ionic cordova plugin add cordova-plugin-app-version
$ npm install --save @ionic-native/app-version@4
transfer(上传文件,下载文件)
$ ionic cordova plugin add cordova-plugin-file-transfer
$ npm install --save @ionic-native/file-transfer@4
file(要去的文件的本机目录)
$ ionic cordova plugin add cordova-plugin-file
$ npm install --save @ionic-native/file@4
opener2(打开文件)
$ ionic cordova plugin add cordova-plugin-file-opener2
$ npm install --save @ionic-native/file-opener@4
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { AlertController } from 'ionic-angular';
//以下4个需要在app.module.ts中引入 并在providers中声明
import { AppVersion } from '@ionic-native/app-version';
import { FileTransfer, FileTransferObject } from '@ionic-native/file-transfer';
import { File } from '@ionic-native/file';
import { FileOpener } from '@ionic-native/file-opener';
@Injectable()
export class UpdateappProvider {
locVersion: any = '';
// locVersion;
webVersion: any = '';
constructor(
public http: HttpClient,
private appVersion: AppVersion,
private transfer: FileTransfer,
private file: File,
private fileOpener: FileOpener,
private alertCtrl: AlertController,
) {
}
//或取当前版本号
getLocVersion() {
console.log('loc');
return new Promise((resolve, reject) => {
this.appVersion.getVersionNumber().then((version: any) => {
resolve(version);
}).catch(err => {
console.log('getVersionNumberError' + err);
});
})
}
//或取服务器上的版本号
getWebVersion() {
console.log('web');
let api = "http://IP地址:端口号/目录名/文件名?time=" + new Date().getTime();
return new Promise((resolve, reject) => {
this.http.get(api).subscribe((response: any) => {
console.log(response);
resolve(response.version)
})
})
}
//比较版本号
async checkVersion() {
this.locVersion = await this.getLocVersion();
this.webVersion = await this.getWebVersion();
let locv = this.strToNumber(this.locVersion);
let webv = this.strToNumber(this.webVersion);
console.log("webv===", webv ,"locv===", locv);
if (webv > locv) {
console.log('webv大于locv');
this.alertCtrlMethod();
}
}
//将版本号转换为int型
strToNumber(str: 