繁体   English   中英

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插件在尝试重新连接时仍然可以工作并建立新连接。

根据谷歌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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM