消除页面加载之间的白色Phonegap iOS

时间:2013-06-24 15:08:05

标签: html ios webview load cordova

我正试图在我的iOS Phonegap应用中加载本地页面之间消除白色闪烁。 我已经尝试了所有东西,但我仍然可以在页面加载之间看到白色。

我尝试将我的html背景设为黑色,使用data-transition = none并使webView backgroundcolor清晰。

我把::

 NSLog(@"BEGIN EDIT - set webView to transparent");
[self.webView setBackgroundColor:[UIColor clearColor]];
[self.webView setOpaque: NO];
NSLog(@"END EDIT - set webView to transparent");

在CDVInAppBrowser.m中,在CDVViewController.m和AppDelegate.m中,但似乎没有任何效果!也许我将代码置于错误的位置。

请有人帮我摆脱页面加载之间的白色!

3 个答案:

答案 0 :(得分:0)

PhoneGap加载速度可能很慢。您可能需要使用启动画面API来显示和隐藏启动画面? http://docs.phonegap.com/en/2.8.0/cordova_splashscreen_splashscreen.md.html#Splashscreen

在上面的页面上,还要注意iOS Quirk部分。或者,您是否尝试使用jQuery Mobile或AngularJS进行单页应用程序?

答案 1 :(得分:0)

当我使用Phonegap制作移动应用程序时遇到了同样的问题。 我不知道如何避免这些闪现,但是当你构建一个只有几个屏幕的简单应用程序时,你可以将所有HTML文档实现为一个文件,如:

<html>
    <body>
         <div class="page" id="page-1">
              Content of page one
         </div>
         <div class="page" id="page-2" style="display:none;">
              Content of page two
         </div>
         <div class="page" id="page-3" style="display:none;">
              Content of page three
         </div>
    </body>
</html>

现在,您可以通过使用户可见/不可见来切换每个容器的内容。

此解决方案背后的理念是,所有应用的内容都会加载一次(开头),使用jQuery,您将在内容之间切换,而不使用这些白色当webbrowser必须呈现用户已被重定向到的新页面时闪烁。

只有当您的应用不包含太多内容时,这才是一个很好的解决方案。

答案 2 :(得分:0)

像我说的那样,在这种情况下将应用程序设置为单个文件是不可能的,因为它的复杂性并且我不介意页面加载之间的白色闪烁是否为黑色,因为它们不需要很长时间。这是我使用Phonegap 2.8 for iOS发现的解决方案:

在CDVViewController.m

- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
    // Black base color for background matches the native apps
    theWebView.opaque = NO;
    theWebView.backgroundColor = [UIColor blackColor];
    //the rest of the code…

希望它对其他人有用。