5

加载启动图像后,我的应用程序加载前出现白屏。我正在使用带有 xcode 的 phonegap。我希望我的应用程序加载到我的 lauch 图像上,以便它遵循 ios 开发人员指南并提供流畅的启动。我认为这个白屏是我的应用程序的 webview 加载。我希望这个 webview 清楚。关于解决此问题或解决方法的任何想法?

我尝试了以下代码,但它对我的启动没有任何影响。此代码位于我的 MainViewController.m

-void (webViewDidFinishLoad:(UIWebView*) theWebView
{
theWebView.backgroundColor = [UIColor clearColor];
theWebView.opaque = NO;
 }

我对此进行了很多研究,但我还没有找到解决方案。

4

6 回答 6

4

我也遇到了同样的问题,试试我为解决问题所做的这3个步骤:

  1. 在您的 phonegap/cordova plist 文件中设置AutoHideSplashScreenNO

  2. 将此行添加到 CDVMainViewController.m 的 viewDidLoad 方法中

    self.useSplashScreen = YES;
    
  3. 然后将此代码添加到onDeviceReady()方法中

    function onDeviceReady()
    {
    // do your thing!
    cordova.exec(null, null, "SplashScreen", "hide", []);  //On Cordova 1.6. 0
    }
    
于 2012-10-29T06:24:12.647 回答
2

您必须在启动后覆盖一个伪造“Default.png”图像的 ModalViewController,将视图控制器覆盖在 UIWebView 之上,并显示一个 UIActivityIndi​​cator,以便用户知道您正在加载您的应用程序。网页完成后,您可以关闭视图控制器。

希望这可以帮助。

于 2012-07-02T20:42:46.823 回答
2

您是否考虑过手动隐藏启动屏幕,以便您的页面在它消失之前准备好?

window.setTimeout(function() { 
navigator.splashscreen.hide();
},1350);

AutoHideSplashScreen并在你的 phonegap/cordova plist 文件中设置为 NO

于 2012-07-03T03:42:59.527 回答
0

我有一个类似的问题。我没有在代码中修复它,而是在 UI 编辑器中修复它。包含 uiwebview 的窗口本身在属性中也有背景颜色。这可以设置为您选择的颜色,以消除白色的闪光。(我将我的设置为黑色。)

于 2012-07-02T20:50:16.147 回答
0

从 Cordova/Phonegap 3+ 开始,您需要在 config.xml 中设置首选项:

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

您还需要插件:

cordova plugin add org.apache.cordova.splashscreen

然后,

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
  // depending on how many things you are rendering on your webview, you might want to add an artificial wait
  var SPLASH_SCREEN_DELAY = 500;
  setTimeout(function() {
    navigator.splashscreen.hide();
  }, SPLASH_SCREEN_DELAY);
}
于 2015-05-15T18:30:55.187 回答
0

我遇到了同样的问题,在做了一些研究后,我发现这是因为应用程序需要一些时间来加载所有必需的 .css 和 .js 文件。

为了克服这个问题,我们可以使用启动画面并延迟它的时间,这样在加载所有需要的文件之前,最终用户不会看到乱码的白屏,而是可以看到我们自定义的启动画面。

我通过参考“ian”给出的答案的第一和第二部分来解决它。这些是我遵循的步骤。

第 1 步:安装 Cordova Splashscreen 插件。

cordova plugin add org.apache.cordova.splashscreen

第 2 步:将 config.xml 文件中的 Auto Hide Splash Screen Preference 设置为 false。

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

第三步:增加闪屏延迟时间

<preference name="SplashScreenDelay" value="6000"/>

希望这对某人有帮助:)

于 2016-01-21T07:50:59.407 回答