[英]Ionic native network plugin
我需要檢查互聯網和ID連接是否存在,我需要執行服務器請求。 我使用了離子本機網絡插件。 但是我按照他們的官方文件做了。
我的代碼:
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, LoadingController } from 'ionic-angular';
import { Auth } from '../../providers/auth/auth';
import { Network } from '@ionic-native/network';
@Component({
selector: 'page-login',
templateUrl: 'login.html',
})
export class LoginPage {
constructor(private network: Network,private alertCtrl: AlertController,public navCtrl: NavController, public navParams: NavParams,public authService: Auth, public loadingCtrl: LoadingController) {
}
ionViewDidLoad() {
// watch network for a disconnect
let disconnectSubscription = this.network.onDisconnect().subscribe(() => {
console.log('network was disconnected :-(');
});
disconnectSubscription.unsubscribe();
// watch network for a connection
let connectSubscription = this.network.onConnect().subscribe(() => {
console.log('network connected!');
//Check if already authenticated
this.authService.checkAuthentication().then((res) => {
console.log("Already authorized");
this.loading.dismiss();
this.navCtrl.setRoot(HomePage);
}, (err) => {
console.log("Not already authorized");
this.loading.dismiss();
});
});
// stop connect watch
connectSubscription.unsubscribe();
console.log('ionViewDidLoad LoginPage');
}
}
我的控制台顯示此錯誤:
為什么會這樣? 是否需要添加provider數組?
UPDATE
正如Daniel B提到的,我將網絡添加到了提供程序數組中,以上錯誤消失了。 現在它沒有進入this.network.onConnect()
您必須將Network
添加到*.module.ts
( app.module.ts
)中的providers數組中。
您需要將Network
添加為提供者。
為此,您的app.module.ts
將Network
添加為提供者:
import { Network } from '@ionic-native/network';
@NgModule({
declarations: [
...
],
imports: [
...
],
bootstrap: [IonicApp],
entryComponents: [
...
],
providers: [
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler},
Network
]
})
但是,由於Network
模塊是ionic-native
一部分,因此它需要Cordova,因此不會在瀏覽器中運行,只能在仿真器或本機中運行。
我建議使用Network
provider平台包裝功能,以免瀏覽器崩潰,但在存在cordova時仍然可以使用:
this.platform.ready().then(() => {
// calls to ionic-native modules e.g. `Network` methods
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.