【问题标题】:Splash screens not working in PhoneGap Build启动画面在 PhoneGap Build 中不起作用
【发布时间】:2013-10-05 17:01:18
【问题描述】:

在 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 上进行测试,而且 PhoneGap Build 默认图标似乎只出现在 iOS 中,我是否决定需要放置一个自定义启动画面。

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

【问题讨论】:

  • 这是上帝告诉你闪屏是邪恶的方式。 cyrilmottier.com/2012/05/03/…
  • 我很乐意不使用,但 Phone Gap Build 有一个我不想要的默认图像。
  • 到目前为止,黑屏没有成功,你运气好吗?
  • PhoneGap Build 技术支持正在调查它。如果/当我得到答案时,我会在这里发布。
  • 见我的Answer,它适用于cordova 4.0.0 Android Samsung S6 Edge。

标签: android ios splash-screen phonegap-build


【解决方案1】:

适用于 iOS

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

对于 iOS,这将是:

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

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

适用于安卓

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

  • 平台/android/res/drawable-land-hdpi
  • platform/android/res/drawable-land-ldpi
  • platform/android/res/drawable-land-mdpi
  • 平台/android/res/drawable-land-xhdpi
  • 平台/android/res/drawable-land-xxhdpi
  • 平台/android/res/drawable-port-hdpi
  • 平台/android/res/drawable-port-ldpi
  • 平台/android/res/drawable-port-mdpi
  • 平台/android/res/drawable-port-xhdpi
  • 平台/android/res/drawable-port-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,但似乎没有涵盖所有必要的步骤。

【讨论】:

  • 这是为 Phonegap 准备的。我正在使用PhoneGap Build。这是 config.xml 文件的问题。
  • CordovaActivity 中的 setIntegerProperty 函数将于 2013 年 7 月在 3.0 中弃用。那么我们如何使用它。
【解决方案2】:

根据您在问题下方的评论,这是我的建议。

  1. 创建一个黑色小方块并将图像保存为 splash.png
  2. 将 splash.png 放在根文件夹中(与 index.html 相同的位置)
  3. 在你的config.xml中使用这个&lt;gap:splash src="splash.png" /&gt;

您现在将看到一个纯黑色的启动画面,看起来就像没有启动画面一样。

【讨论】:

  • 我会试试看,但到目前为止,没有任何图像有效,我不明白为什么会这样。
  • 我知道我的评论对你没有那么有用,但我知道我有完全相同的问题。我通过 build.phonegap.com 构建我的应用程序,我的 config.xml 看起来还可以,但是,当我的应用程序启动时,我会黑屏几秒钟,然后我的应用程序启动......如果我找到解决方案,我会让你知道。
  • 谢谢Sephy。我想我会删除我的应用并重新构建它。
【解决方案3】:

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

从我最初的问题中可以看出,我的配置编码错误。 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,看起来一切正常。

【讨论】:

  • 请更新您的答案,以便链接变为可点击。谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-06-15
  • 2014-10-12
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
  • 2014-11-19
相关资源
最近更新 更多