2013-08-02 28 views
8

Tôi biết điều này đã được hỏi (và trả lời) nhiều lần (Phonegap showing white screen after the splash screen - IOS, Phonegap 2.0 - on app launch a white screen flashes prior to my app loading, how to to kill the white flickering splashscreen at the start of phonegap iOS app?) nhưng không có giải pháp nào trong số này có vẻ phù hợp với tôi. Có lẽ vì tôi đang sử dụng Phonegap phiên bản 3?Phonegap 3 đèn flash trắng sau khi giật gân

Tôi chỉ tải Phonegap và jQuery 2.0.0 (các giải pháp khác xử lý jQuery-mobile mà tôi không sử dụng) và tôi chỉ nhắm mục tiêu iOS để triển khai. Tôi đã có một hình ảnh giật gân tải, sau đó ứng dụng sẽ hiển thị một màn hình trắng (thời gian khác nhau - Tôi đoán nó tải lên các ứng dụng có lẽ?) Sau đó index.html của tôi tải lên màn hình đầu tiên của tôi. Dưới đây là người đứng đầu của tôi hiện tại:

<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> 

Tôi đã cố gắng thêm này để config.xml của tôi (ở cấp thư mục giống như index.html):

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

nhưng tôi vẫn nhận được đèn flash màn hình trắng. Tôi cũng đã thử ẩn theo cách thủ công/hiển thị hình ảnh giật gân với:

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

nhưng điều đó dường như không có tác dụng gì cả. Bất cứ ai có bất cứ đề nghị?

+1

+1 Tôi đang gặp vấn đề tương tự. Bạn đã thực hiện bất kỳ tiến bộ nào chưa? – FlyingLemon

+1

@ FlyingLemon: Tôi đã có thể giải quyết vấn đề này thông qua việc gỡ lỗi thử và lỗi. Các bước của tôi được liệt kê dưới đây. –

Trả lời

18

Cuối cùng tôi đã có thể loại bỏ flash giật gân, nhưng tôi đã phải sử dụng Cordova để làm điều đó. Dưới đây là các bước tôi đã:

Trong Terminal:

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 

Sử dụng Finder để điều hướng đến ~/path/to/project/platforms/ios/ và nhấp đúp vào projectname.xcodeproj để mở dự án trong Xcode.

Tiếp theo, tôi đã vào và chỉnh sửa hình ảnh. Bạn có thể làm điều đó bằng nhiều cách. Dưới đây là những gì tôi đã làm: Trong Xcode, điều hướng đến Resources/splash/, nhấp chuột phải vào hình ảnh để thay đổi, chọn Show in Finder và sử dụng bất kỳ công cụ nào bạn muốn thay đổi hình ảnh.

Sau khi hoàn tất, quay lại Xcode và mở thư mục gốc config.xml (Vẫn không chắc tại sao có hai tệp config.xml nhưng bạn muốn có một tệp xa nhất trong cấu trúc thư mục). Cập nhật thuộc tính AutoHideSplashScreen thành

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

Từ menu chính của Xcode, chọn Product > Clean và sau đó Product > Build.

Làm việc cho tôi nhiều lần. Sau đó tôi có thể sử dụng các phương pháp navigator.splashscreen.show()navigator.splashscreen.hide() từ ứng dụng của mình (dường như không phản hồi mà không phải thực hiện tất cả các bước này).

Hy vọng điều này sẽ hữu ích!

+1

+1 ** Đúng vậy. ** Mọi plugin phải được thêm thủ công vào dự án ngay bây giờ, bằng cách sử dụng công cụ CLI. PS: ** Nó cũng hoạt động mà không có splashscreen.hide/show sự kiện. ** – FlyingLemon

+2

Tôi vẫn còn một chút nhầm lẫn về cú pháp giữa các dự án Phonegap v Cordova, như các tài liệu trực tuyến tham khảo một dự án Cordova. Điều này đã kết thúc với tôi: 'plugin cục bộ phonegap thêm https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git' – avoision

+0

Trong trường hợp của tôi sau khi cài đặt, tôi đã phải loại bỏ '' từ SplashScreen '' node trong tệp config.xml (tôi sử dụng Cordova 3.3.0) – gregmatys

4

Tôi có một vấn đề với các plugin hoặc một số vấn đề với PhoneGap để

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

không làm việc cho tôi.

tôi cố định nó bằng cách thiết lập alpha webview 0 cho đến khi nó nạp:

3 bước sau:

  1. trong file "CDVViewController.m" trong phương pháp "-(void)createGapView" Tôi nói thêm:
    self.webView.alpha = 0;
  2. trong file "MainViewController.m" trong phương pháp "-(void)WebViewDidFinishLoad:(UIWebView*)theWebView" Tôi nói thêm: theVebView.alpha=1;
  3. trong file "MainController.xib" tôi đã thay đổi nền sang màu đen (đặt nó vào bất kỳ màu nào bạn thích)

Bây giờ thay vì một màn hình trắng. đèn flash tôi có một cái màu đen đến khi nội dung được nạp đầy đủ. đủ tốt cho tôi. (mặc dù không hoàn hảo)

hy vọng điều này giúp ..

+0

Đây là điều duy nhất có hiệu quả đối với tôi, cảm ơn đống :) – Rocklan

0

này đã làm việc f hoặc tôi sử dụng build.phonegap.com

Bước 1: Thêm plugin Slashscreen để config.xml của bạn

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

Bước 2: Cập nhật config.xml của bạn với sở thích này.

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

Bước 3: Thêm các plugin function gọi đến sự kiện 'deviceready' của bạn

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

thử Thêm

<param name="onload" value="true" /> tính năng Splashscreen của bạn trong config.xml.

0

Sau khi nhận được điên với các plugin giật gân, tôi tìm ra giải pháp này:

  1. trong MainViewController.xib, thêm một UIImageView (imgView).
  2. đặt hình ảnh giật gân của bạn vào đó, đặt tỷ lệ để lấp đầy.
  3. Trong MainViewController.m, ghi đè - (void) webViewDidFinishLoad: (UIWebView *) cácWebView
  4. thêm các mã sau [super webViewDidFinishLoad: theWebView];

    [self.view sendSubviewToBack: imgView];

    imgView.hidden = YES;

Các vấn đề liên quan