飞溅之后Phonegap 3白色闪光

我知道这已经被问了(和回答)几次( Phonegap显示白屏后的启animation面 – IOS , Phonegap 2.0 – 在应用程序启动一个白色的屏幕闪烁之前,我的应用程序加载 , 如何杀死白色闪烁splashscreen在手机iOS应用程序的开始? ),但这些解决scheme似乎没有为我工作。 也许是因为我使用Phonegap版本3?

我只加载Phonegap和jQuery 2.0.0(其他解决scheme处理jQuery的手机,我不使用),我只针对iOS部署。 我已经加载了一个启动图片,然后应用程序显示一个白色的屏幕(持续时间不同 – 我猜它是加载应用程序也许?)然后我的index.html加载我的第一个屏幕。 这是我目前的头:

<head> <meta charset="utf-8" /> <meta name="format-detection" content="telephone=no" /> <meta name="viewport" content="user-scalable=no, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <link type="text/css" rel="stylesheet" href="css/main.css" /> <title>My App</title> <script type="text/javascript" src="phonegap.js"></script> <script src="js/lib/jquery-2.0.0.min.js"></script> <script src="js/main.js"></script> </head> 

我试着把它添加到我的config.xml文件(与index.html在相同的文件夹级别):

 <preference name="backgroundColor" value="0x000000" /> 

但我仍然得到白屏闪光。 我也尝试手动隐藏/显示飞溅:

 function onDeviceReady() { navigator.splashscreen.show(); } 

但是这似乎没有任何影响。 有人有什么build议?

我终于能够消除飞溅的闪光,但我不得不使用cordova来做到这一点。 以下是我采取的步骤:

在docker:

 cordova create ~/path/to/project “com.appname.app” “appName” cd ~/path/to/project cordova platform add ios cordova build cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git cordova build 

使用Finder导航到~/path/to/project/platforms/ios/ ,然后双击projectname.xcodeproj在Xcode中打开项目。

接下来,我进入编辑图像。 你可以做任何方法。 以下是我所做的:在Xcode中,导航到Resources/splash/ ,右键单击要更改的图像,selectShow in Finder并使用任何要更改图像的工具。

一旦完成,回到Xcode并打开根级别的config.xml (仍然不知道为什么有两个config.xml文件,但你想要一个最远的文件夹结构)。 将AutoHideSplashScreen属性更新为

<preference name="AutoHideSplashScreen" value="false" />

从Xcode主菜单中,selectProduct > Clean ,然后selectProduct > Build

一再为我工作。 然后,我可以使用我的应用程序中的navigator.splashscreen.show()navigator.splashscreen.hide()方法(在没有经过所有这些步骤的情况下似乎没有响应)。

希望这可以帮助!

我有一个问题,插件或phonegap的一些问题,所以

 function onDeviceReady() { navigator.splashscreen.show(); } 

不适合我

我通过将webview alpha设置为0来修复它,直到它被加载:

3个步骤:

  1. 在方法“ -(void)createGapView ”中的"CDVViewController.m"文件中我添加了:
    self.webView.alpha = 0;
  2. "MainViewController.m"文件中的方法“ -(void)WebViewDidFinishLoad:(UIWebView*)theWebView"我加: theVebView.alpha=1;
  3. "MainController.xib"文件中,我将背景更改为黑色(将其设置为任何您喜欢的颜色)。

现在,而不是一个白色的屏幕闪光我有一个黑色的,直到内容是满载。 对我来说足够了。 (虽然不完美)

希望这可以帮助..

尝试添加

在config.xml中的SplashScreenfunction<param name="onload" value="true" />

这对我使用build.phonegap.com

第1步:将Slashscreen插件添加到您的config.xml

 <gap:plugin name="org.apache.cordova.splashscreen" version="0.2.7" /> 

第2步:用这个首选项更新你的config.xml。

 <preference name="auto-hide-splash-screen" value="false" /> 

第3步:将插件函数调用添加到您的“deviceready”事件

 <script> document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { navigator.splashscreen.hide() } </script> 

用splash插件生气后,我发现这个解决scheme:

  1. 在MainViewController.xib中,添加一个UIImageView(imgView)。
  2. 把你的飞溅图像放在里面,设置比例来填充。
  3. 在MainViewController.m中,覆盖 – (void)webViewDidFinishLoad:(UIWebView *)theWebView
  4. 在[super webViewDidFinishLoad:theWebView]之后添加这些代码;

    [self.view sendSubviewToBack:imgView];

    imgView.hidden = YES;