ionic4 / angular7 - 如何在意外的 BLE 中断时使用导航 API?
ionic4 / angular7 - How should one use the navigation API on unexpected BLE interrupts?
开发中的代码在Android和iOS上都是运行,使用的框架是Angular7和ionic4以及cordova BLE插件。
发生意外连接失败后,应用程序应导航回根 URL / 主屏幕,确实如此。但之后无法从主屏幕导航离开,应用程序卡住了。
到目前为止,我已经确定确实触发了导航事件,并且底层 BLE 插件仍然有效并在尝试重新连接时建立了新连接。
根据 Google Chrome 开发人员工具,DOM 已清除任何剩余页面,正如预期的那样。
此外,我已经确定任何持有全局状态的服务都已完全重置。
我已经尝试将 angular 和 ionic 更新到最新版本,但没有任何区别。
此代码片段被调用为来自某些 s
的(点击)-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-method.
中有一个阻塞语句
开发中的代码在Android和iOS上都是运行,使用的框架是Angular7和ionic4以及cordova BLE插件。
发生意外连接失败后,应用程序应导航回根 URL / 主屏幕,确实如此。但之后无法从主屏幕导航离开,应用程序卡住了。
到目前为止,我已经确定确实触发了导航事件,并且底层 BLE 插件仍然有效并在尝试重新连接时建立了新连接。
根据 Google Chrome 开发人员工具,DOM 已清除任何剩余页面,正如预期的那样。
此外,我已经确定任何持有全局状态的服务都已完全重置。
我已经尝试将 angular 和 ionic 更新到最新版本,但没有任何区别。
此代码片段被调用为来自某些 s
的(点击)-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-method.
中有一个阻塞语句