[英]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.