1***@163.com
1***@163.com
  • 发布:2018-04-08 22:46
  • 更新:2018-04-12 16:01
  • 阅读:2002

启动图闪白屏

分类:HTML5+

配置黑色启动图后,在ios11中能够明显看见闪了一下白屏。(iOS10没有这个现象)

求大神指点解决办法,感谢

2018-04-08 22:46 负责人:无 分享
已邀请:
骁骑

骁骑

回复 1***@163.com:可按照如下步骤处理
1 AppDelegate.m 文件中- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions方法修改如下

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
{  
BOOL ret = [PDRCore initEngineWihtOptions:launchOptions  
withRunMode:PDRCoreRunModeNormal];  

#ifdef dcSplashAd  
// 获取广告所在的VC对象,如果对象存在说明可以显示广告,否则不显示splash广告  
DCH5ScreenAdvertising *adViewContoller = [DCSplashAdObserver splashAdViewController];  
if(adViewContoller){  
// 显示splash广告必须使用NavigationController作为当前应用的RootController,否则广告无法显示  
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:_window.rootViewController];  
navigationController.navigationBarHidden = YES;  
_window.rootViewController = navigationController;  
[navigationController pushViewController:adViewContoller animated:NO];  
// 必须监听当前广告关闭的事件,在事件触发时弹出当前的SplashAdVC,显示5+所在的VC  
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(splashAdScreenWillClose) name:kDCSplashScreenCloseEvent object:nil];  
}else{  
dispatch_async(dispatch_get_main_queue(), ^(void) {  
[[PDRCore Instance] showLoadingPage];  
[[PDRCore Instance] start];  
});  
}  
#endif  
return ret;  
}  

2 ViewController.m文件的- (void)loadView方法修改如下

- (void)loadView  
{  
PDRCore *h5Engine = [PDRCore Instance];  
[super loadView];  
[self setStatusBarStyle:h5Engine.settings.statusBarStyle];  
_isFullScreen = [UIApplication sharedApplication].statusBarHidden;  
if ( _isFullScreen != h5Engine.settings.fullScreen ) {  
_isFullScreen = h5Engine.settings.fullScreen;  
if ( [self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)] ) {  
[self setNeedsStatusBarAppearanceUpdate];  
} else {  
[[UIApplication sharedApplication] setStatusBarHidden:_isFullScreen];  
}  
}  
h5Engine.coreDeleagete = self;  
[h5Engine setContainerView:self.view];  
h5Engine.persentViewController = self;  

[[PDRCore Instance] showLoadingPage];  
dispatch_async(dispatch_get_main_queue(), ^{  
[[PDRCore Instance] start];  
});  
}
  • 1***@163.com (作者)

    感谢大神!按照你说的操作修改后,问题解决了。

    2018-04-13 17:53

DCloud_heavensoft
  • 1***@163.com (作者)

    感谢大神的回答!


    但是我目前遇到的问题是:


    1、只是把官方最新的支持iphoneX的SDK(IOS-SDK@1.9.9.42697_20180309)给出的demo中的启动图换成了黑色的图片,启动时,会发现在启动图上闪了一下,现在发现ios10和ios11都有这个问题,只是在ios11上是必现,ios10上是偶现。


    2、我用不支持iphoneX的SDK(IOS-SDK@1.9.9.38472_20171031-2)把启动图更换为黑色图片,就不存在这个问题。


    3、我试过把启动的index.html不写任何内容,单纯把它的背景颜色设置为黑色,这样应该就不存在网络请求,页面绘制慢的问题,但是还是会在启动图上闪一下。(并不是启动图消失后才闪白屏,是在启动图上闪,闪完还是在启动图上,之后启动图才消失。)


    4、我发现直接用最新的支持iphoneX的SDK例子运行,5+的图标也会闪一下,只是整体界面是白色的,现象不明显。


    还请大神再帮忙看一下,万分感谢

    2018-04-11 16:59

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