[英]ionic4 / angular7 - How should one use the navigation API on unexpected BLE interrupts?
開發中的代碼在Android和iOS上運行,使用的框架是Angular7和ionic4以及cordova BLE插件。
在意外的連接失敗后,應用程序應該導航回根URL /主屏幕,它會執行此操作。 但之后無法離開主屏幕並且應用程序卡住了。
到目前為止,我確定導航事件確實被觸發,並且底層BLE插件在嘗試重新連接時仍然可以工作並建立新連接。
根據谷歌Chrome開發人員工具,DOM可以清除任何剩余的頁面,如預期的那樣。
此外,我已確定任何持有全局狀態的服務都已完全重置。
我已經嘗試將角度和離子更新到最新版本,但它沒有任何區別。
這段代碼被稱為對某些s的(click)-Event的回調
this.communicatorService.connect(device).subscribe(
peripheral => {
console.debug('CONNECTED');
this.zone.run(() => {
this.navCtrl.navigateForward('/connected').then(
_ => console.debug('NAVIGATED')
);
});
},
error => {
console.error(error);
this.resetState();
this.zone.run(() => {
this.navCtrl.navigateBack('/').then(
_ => console.debug('NAVIGATED BACK')
)
});
}
);
我期望在控制台上讀取CONNECTED和NAVIGATED,然后見證頁面轉換。
這只是應用程序遇到意外的BLE連接丟失之前的情況。
連接丟失后,我可以在控制台上閱讀“NAVIGATED BACK”。 嘗試重新連接到BLE設備時,會執行代碼段,我可以讀取CONNECTED和NAVIGATED,但不會發生頁面轉換。
在這種情況下我是否正確使用導航API?
發現錯誤。 我在控制器的ngOnDestroy方法中有一個阻塞語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.