本文整理汇总了TypeScript中@ionic-native/network.Network.onchange方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Network.onchange方法的具体用法?TypeScript Network.onchange怎么用?TypeScript Network.onchange使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@ionic-native/network.Network
的用法示例。
在下文中一共展示了Network.onchange方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: checkForUpdates
async checkForUpdates() {
if (this.checking) {
return;
} else {
this.checking = true;
}
try {
await this.platform.ready();
await this.hasDeploy();
const hasUpdate = await Promise.race([
this.pro.deploy().check(),
new Promise((_, reject) => setTimeout(reject, 8000)),
]);
console.log(hasUpdate);
if (hasUpdate !== 'true') {
return false;
}
switch (this.network.type) {
// Don't update if the network type is slow (it probably costs a little bit)
case Connection.CELL:
case Connection.CELL_2G:
case Connection.CELL_3G:
case Connection.UNKNOWN:
case Connection.NONE:
this.network
.onchange()
.pipe(take(1))
.subscribe(() => {
this.checkForUpdates();
});
return false;
case Connection.WIFI:
case Connection.CELL_4G:
default:
break;
}
await this.pro
.deploy()
.download()
.pipe(
tap(status => console.log('Download status:', status)),
filter(status => status === 'true' || status === 'done'),
switchMap(() => this.pro.deploy().extract()),
tap(status => console.log('Extract status:', status)),
filter(status => status === 'true' || status === 'done'),
take(1),
timeout(30 * 1000),
)
.toPromise();
if (this.settings.isDeveloper) {
const alert = await this.alertCtrl.show({
title: 'New update available',
message: 'There is a new update available',
buttons: [
{
text: 'Install',
role: 'install',
},
{
text: 'Postpone',
role: 'cancel',
},
],
});
return new Promise(resolve => {
alert.onDidDismiss((_, role) => {
if (role === 'install') {
this.pro.deploy().redirect();
resolve(true);
} else {
resolve(false);
}
});
});
}
return false;
} finally {
this.checking = false;
}
}