非专业开发人员
非专业开发人员
  • 发布:2021-01-12 15:55
  • 更新:2021-02-02 15:19
  • 阅读:1219

两个小程序无法来回切换

分类:uni小程序sdk

使用uniapp的小程序SDK, 在原生项目中有个需求,

小程序1,和小程序2 会相互切换打开。小程序1点击按钮打开小程序2, 这时候小程序1会向原生发送消息,onUniMPEventReceive在监听方法中获取小程序2的appid, 然后关闭小程序1 [DCUniMPSDKEngine closeUniMP]; 再打开小程序2. 小程序2中也可以实现关闭后再打开小程序1.

问题:
小程序1第一次关闭然后打开小程序2, 这时候正常。然后在小程序2中发送消息,onUniMPEventReceive监听消息,能收到消息,这时候[DCUniMPSDKEngine closeUniMP] 关闭小程序2,就没响应了,也不走关闭的代理方法。

原生代码见附件, 代码是否有问题,如何实现两个小程序可以相互切换。

2021-01-12 15:55 负责人:无 分享
已邀请:
DCloud_iOS_XHY

DCloud_iOS_XHY

感谢反馈,问题已确认,临时解决方案,可在小程序关闭的回调中加个延时再次打开小程序就可以了

/// 小程序关闭回调方法  
- (void)uniMPOnClose:(NSString *)appid {  
    NSLog(@"小程序 %@ 被关闭了",appid);  

    self.uniMPInstance = nil;  

    // 可以在这个时机再次打开小程序  
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{  
        [self openUniMP:nil];  
    });  
}
DCloud_iOS_XHY

DCloud_iOS_XHY

感谢反馈,此问题已经在 HBuilderX 3.1.0+版本修复,请升级;

该问题目前已经被锁定, 无法添加新回复