由于APP的层级比较复杂,使用exitSession就会出现问题,
比如:
打开几个离线包页面再打开原生页面后调用exitSession,可是原生页面也被关闭了。
但另一个入口却没有问题
原因是starth5app后打开的页面是在DFNavigationController堆栈中的,它是window的根视图控制器。另一个入口没问题,因为是原生通过[[MPNebulaAdapterInterface shareInstance] createH5ViewController:mCreateParams],使用内层的导航控制器push的。
解决办法还是得同导航跳转:不使用插件startH5App打开新离线包,新建插件在同层级打开。
示例代码:
- (void)handler:(NSDictionary *)data
context:(PSDContext *)context
callback:(PSDJsApiResponseCallbackBlock)callback
{
[super handler:data context:context callback:callback];
currentvc = 当前展示的vc
NSDictionary *param = data[@"param"][@"param"];//组装参数
vc = [[MPNebulaAdapterInterface shareInstance] createH5ViewControllerWithNebulaApp: param];
[currentvc.navigationController pushViewController:vc];
}
通过遍历导航堆栈的方法在关闭页面上做文章不可取。