启动屏幕无法在PhoneGap Build中运行

时间:2013-10-05 17:01:19

标签: android ios splash-screen phonegap-build

我无法在Android或iOS中使用启动画面。

我正在使用PhoneGap Build,我已经设置了这样的config.xml,现在适用于v3.0.0。

<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
    xmlns:gap = "http://phonegap.com/ns/3.0.0"
    id        = "myid"
    version   = "1.0.0">


<name>myname</name>

<description>
    mydesc
</description>

<author>
</author>

<preference name="permissions" value="none"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="android-minSdkVersion" value="14" />       <!-- JB 4.0 -->
<preference name="fullscreen" value="true" />

<icon src="icon.png" />
<gap:platform name="ios" />
<gap:platform name="android" />
<gap:splash src="splash.png" gap:platform="ios" width="320" height="480" />
<gap:splash src="splash.png" gap:platform="android" width="320" height="480" />

</widget>

我已经取出了个人信息。

该应用程序工作正常,但我从来没有使用启动画面,即使它适用于PhoneGap 2.7.0和2.9.0以及Android。

splash.png和icon.png目前实际上是相同的图像。我试过不同的尝试。我最近才开始在iOS上进行测试,而且iOS中似乎只出现了PhoneGap Build默认图标,我决定需要自定义启动画面。

我找不到使用标签的地方或方式的示例,除了官方文档,甚至在那里他们展示了一个示例config.xml和标签,但他们没有说明放在哪里或者是否有其他规则。

3 个答案:

答案 0 :(得分:2)

适用于iOS

您需要将启动画面图像复制到平台目录中,它们不会自动从www/res/复制。

对于iOS,这将是:

platform/ios/[name of your project]/splash/

这些应该是PhoenGap的默认启动画面。

适用于Android

文档似乎有点缺乏。但您需要在platform/android/res文件夹中创建相关文件夹。这些应该是:

  • 平台/机器人/ RES /抽拉-土地HDPI
  • 平台/机器人/ RES /抽拉-土地LDPI
  • 平台/机器人/ RES /抽拉-土地MDPI
  • 平台/机器人/ RES /抽拉-土地xhdpi
  • 平台/机器人/ RES /抽拉-土地xxhdpi
  • 平台/机器人/ RES /抽拉口-HDPI
  • 平台/机器人/ RES /抽拉口-LDPI
  • 平台/机器人/ RES /抽拉口-MDPI
  • 平台/机器人/ RES /抽拉口-xhdpi
  • 平台/机器人/ RES /抽拉口-xxhdpi

在这些文件夹中,您需要上传启动画面,确保它名为splash.png,否则应用程序将无法选择它。

最后一个重要的步骤是,您需要将以下行添加到主Activity文件中,这可以在您的android项目文件夹中找到,并且将被命名为与您的应用程序相同的名称。该文件扩展了Cordova默认活动文件,该文件说明了扩展和添加启动画面。该文件将是:

platforms/android/src/com/[your app name]/[your app name].java

看起来应该是这样的:

package com.your.project;

import android.os.Bundle;
import org.apache.cordova.*;

public class YourProject extends CordovaActivity 
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        // Set by <content src="index.html" /> in config.xml
        super.loadUrl(Config.getStartUrl());
        //super.loadUrl("file:///android_asset/www/index.html")
    }
}

但需要改为:

package com.your.project;

import android.os.Bundle;
import org.apache.cordova.*;

public class YourProject extends CordovaActivity 
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        // Set by <content src="index.html" /> in config.xml
        super.setIntegerProperty("splashscreen", R.drawable.splash);
        super.loadUrl(Config.getStartUrl());
        //super.loadUrl("file:///android_asset/www/index.html")
    }
}

请注意添加的附加行:

super.setIntegerProperty("splashscreen", R.drawable.splash);

官方文档在这里http://docs.phonegap.com/en/3.3.0/config_ref_images.md.html#Icons%20and%20Splash%20Screens,但它似乎没有涵盖所有必要的步骤。

答案 1 :(得分:0)

根据您在问题下面的评论,我推荐这里。

  1. 创建一个小黑方并将图像保存为splash.png
  2. 将splash.png放在根文件夹中(与index.html相同的位置)
  3. 在config.xml <gap:splash src="splash.png" />
  4. 中使用此功能

    现在,您将拥有一个坚实的黑色闪屏,看起来没有闪屏。

答案 2 :(得分:0)

所以这个问题现在似乎已经解决了。

从我最初的问题中可以看出,我编写的配置错误。 PGB版本选择代码不应该是“xmlns:gap =”http://phonegap.com/ns/3.0.0“但是:

<preference name="phonegap-version" value="3.0.0" />

我确实责备PGB,因为文档不清楚(尽管它们正在改进)。

无论如何 - get your splash screens working use the info here

我现在正在使用PGB 3.3.0,看起来一切都很好。