我们在APP的首页有两个H5应用,这两个应用都是通过以下方式打开的。
//加载应用,我们自定义一个H5VC 控制器来作为H5应用的载体。
-(void)ShowAppById:(NSString) appID htmlName:(NSString)htmlName
{
//Widget方式集成显示本地应用 正常,不过会有白屏
NSString pAppPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"Pandora/apps/"];
NSString pWWWPath;
//适配引擎屏幕
self.view.frame = CGRectMake(0, 0, ScreenWidth, ScreenHeight);
PDRCore *core = [PDRCore Instance];
[core setContainerView:_containerView];
[core startAsAppClient];
//
pWWWPath = [NSString stringWithFormat:@"%@/%@/www", pAppPath, appID];
[[[PDRCore Instance] appManager] openAppAtLocation:pWWWPath withIndexPath:@"index.html" withArgs:nil withDelegate:nil];
}
退出应用,用以下方式:
//以下方法是插件中的方法,H5应用通过调用插件来执行以下方法,然后退出H5应用。
-(void)navPopViewContrller
{
YRSideViewController ddVC = (YRSideViewController )[AppDelegate GetAppDelegte].yrSide;
UINavigationController nc = (UINavigationController ) ddVC.rootViewController;
[nc popViewControllerAnimated:YES];
}
结论:我在首页点击A应用按钮后,可以正常进入A --H5应用,然后返回到首页,再点击B应用按钮,也可以正常进入B ---H5应用,然后再返回首页。 反复这种操作几次后,再某一时刻,进入H5应用后,界面就白屏了。请问是什么问题。 是不是UIWEBVIEW 引起内存上涨导致的,期望DCloud的技术朋友 给个回复,谢谢!
KS (作者)
这个问题解决了,原因是在不断退出H5应用,再进去之后,引擎的WEBVIEW 有时候没有加到当前控制器的view上,这个BUG 需要你们再看一下,哪里出问题了。下面是我的解决方法:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(finish:) name:PDRCoreAppFrameDidLoadNotificationKey object:nil]; //注册这个通过
//触发通过的方法
{
NSLog(@"DCLOUD finish");
NSLog(@"%ld -----:",_containerView.subviews.count);
if (_containerView.subviews.count == 0) {
[_containerView addSubview:_app.mainFrame.webView];
}
}
2015-12-30 14:09
KS (作者)
这个问题解决了,原因是在不断退出H5应用,再进去之后,引擎的WEBVIEW 有时候没有加到当前控制器的view上,这个BUG 需要你们再看一下,哪里出问题了。下面是我的解决方法:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(finish:) name:PDRCoreAppFrameDidLoadNotificationKey object:nil]; //注册这个通过
//触发通过的方法
{
NSLog(@"DCLOUD finish");
NSLog(@"%ld -----:",_containerView.subviews.count);
if (_containerView.subviews.count == 0) {
[_containerView addSubview:_app.mainFrame.webView];
}
}
2015-12-30 14:10