【问题标题】:Phonegap (Android Build) - Intermediate Screen before Splash ScreenPhonegap (Android Build) - 初始屏幕之前的中间屏幕
【发布时间】:2013-09-18 18:52:02
【问题描述】:

当我第一次启动使用 build.phonegap.com 构建然后分发到我的 Nexus 7(运行 Jelly Bean 4.3)的应用程序时,我看到一个黑屏,顶部有一个灰色的标题栏。这是正常的,还是我需要启用/禁用设置?我可以说这个构建是一个调试构建(我不知道为什么,但是当我再次检查时,设置被检查了)。

我很乐意提供任何需要帮助的见解,谢谢! 如果有帮助,我还可以链接包含我的代码的 github 存储库。

有一张图片:

EDIT2:从后台运行的应用程序中清除应用程序后也会发生这种情况。

【问题讨论】:

  • 这看起来不正常。你在logcat 看到了什么吗?每次首次启动应用程序时都会发生这种情况吗?您是否在启动代码中做了很多繁重的工作?
  • 祝你好运,我似乎和你有同样的问题,我不知道为什么它以黑屏开始。就我而言,我的黑屏可能持续了 2 或 3 秒,然后我的启动画面出现、离开,然后我的应用程序启动了……但是一开始的黑屏真的很难看……
  • 我希望我的赏金会引起一些关注!
  • @Sephy 它发生在水合在线构建上吗?
  • 我都试过了,删除和重新创建,但结果是一样的......

标签: android cordova phonegap-build


【解决方案1】:

您的应用最终会显示还是保持空白?不能真正说出发生了什么,但很快就想到了一些事情。你在使用闪屏吗?查看有关启动画面持续时间部分的 config.xml 文档(仅限 Android)。可以在here 找到文档。

启动画面持续时间

  • 以毫秒为单位的启动画面持续时间
  • 默认为 5000(5 秒)
  • 示例:<preference name="splash-screen-duration" value="10000" />
  • 对于自动隐藏行为调用 navigator.splashscreen.hide();在里面 设备就绪方法
  • PhoneGap 2.1.0 及更高版本支持

尝试将持续时间设置为 0 (<preference name="splash-screen-duration" value="0" />),看看会发生什么。

*再想一想,这可能不是闪屏问题,但值得一试。发布一些你的应用正在做什么的代码(或按照建议分享 github),我会看看我能做什么。

【讨论】:

  • 正如在其他 cmets 中所解释的,我的应用程序显示但在这种空白屏幕上有很大的延迟,持续时间似乎在 1 秒到 6 秒之间变化,然后我的启动画面终于开始了。
【解决方案2】:

这是在您的进程被分叉时 Android 显示的中间屏幕。黑屏只是主题定义的窗口背景。有一篇很棒的文章here 由 Android 开发专家 Cyril Mottier 撰写,关于这个主题。您可以按照文章中的说明对其进行自定义以使其看起来更好一些(基本上只是更改您的窗口背景,但要小心过度绘制)

【讨论】:

  • 太棒了!但是我们如何通过 PhoneGap 来定制呢?
  • 这个问题是关于Phonegap的。对不起,这是一个通用的答案!
【解决方案3】:

2017年,这个问题的答案要简单很多:

config.xml 中,将此行添加到您的widget 声明中(就在xmlns:gap="http://phonegap.com/ns/1.0" 的下方)。这告诉 PhoneGap 你想向 Android Manifest 添加一些东西:

xmlns:android = "http://schemas.android.com/apk/res/android"

然后在同一个文件的某处添加下面的 sn-p。生成 APK 时,配置标签​​之间的所有内容都将由 PhoneGap 附加到 Android 清单中。这条小线只会让您的应用背景透明,从而永远不会看到黑色的加载屏幕。

<config-file platform="android" parent="/manifest" mode="merge">
    <application android:theme="@android:style/Theme.Translucent.NoTitleBar"></application>
</config-file>

【讨论】:

  • 我无法使用config-file(收到错误Error parsing XML: unbound prefix)。相反,我使用了类似的方法。在&lt;platform name="android"&gt; 里面我包括了&lt;preference name="android-manifest/application/activity/@android:theme" value="@android:style/Theme.Translucent.NoTitleBar" /&gt;
  • 我花了好几个小时寻找这个解决方案。谢谢!!!!!!!!!!!!!!!!!!
【解决方案4】:

这可以通过在 Phonegap 的 config.xml 中添加以下行来解决:

<gap:config-file platform="android" parent="/manifest">
    <application android:theme="@android:style/Theme.NoTitleBar"></application>
</gap:config-file>

【讨论】:

    【解决方案5】:

    添加到文件config.xml:

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

    我不能肯定地说,我的问题或多或少有所不同,但为我解决了。

    【讨论】:

    • 这确实很奇怪。我真的不明白这有什么帮助,但我会试一试,如果它有效,我会回复你。
    【解决方案6】:

    此屏幕是在加载 Web 视图之前包装您的 html 的 android 应用程序的窗口。应用的theme 决定了它的布局。

    但是,目前,您无法通过 config.xml 更改 android 主题。

    这是issue,8 个月前开通,这里是 phonegap 构建团队的答案:

    我们已将您的请求添加到团队的待办事项中。由于量大, 处理您的请求可能会有延迟。放心,我们 没有忘记您的请求。您的反馈对 我们,所以请继续。

    请注意,在 phonegap build 社区中,herehere 也提出了此请求,但开发人员的回答仍然含糊不清。

    好吧,恐怕现在剩下的就是等待这个功能发布了。

    在那之前,他们说的一种解决方法至少会缩短该标题屏幕的长度是这样的:

    <preference name="fullscreen" value="true" />
    

    希望我能有所帮助! ;)

    【讨论】:

    • 耻辱...无论有没有全屏标志,我都看不到任何改进...
    • 我的问题似乎没有“构建器”解决方案。因此我不知道该接受什么答案......虽然你的解释指出我正确的问题......似乎我只需要等待
    • 确实,您的问题没有解决方案。但是对于您的问题,肯定会有很多答案。接受哪个取决于你。赏金很有趣,但无论你选择什么答案,或者根本没有答案,我们都会没事的。 ;) 无论如何,作为赞赏的形式,总是欢迎投票... ;)
    【解决方案7】:

    我找到了一个对我有用并且与 Bradley 的回答相关的解决方案,你可以试试。

    在您的项目下的“platforms\android”文件夹中,打开AndroidManifest.xml,在包含&lt;activity&gt; 标签的android:theme 中搜索android:name="MainActivity",并将默认值(即android:theme="@android:style/Theme.DeviceDefault.NoActionBar")更改为android:theme="@android:style/Theme.Translucent"。保存文件并再次构建您的项目,灰屏应该消失。

    【讨论】:

    • 你的答案是对的。但是,当我启动应用程序时更改主题后,它会延迟一点。该应用程序应立即启动。你能找到解决办法吗?
    • @AlauddinAhmed “延迟”是正在加载的主 Activity,在更改主题之前它被主 Activity 默认主题(“Theme.DeviceDefault.NoActionBar”)的灰色屏幕填充,但现在主题是透明的,因此在加载 Main Activity 时它什么也不显示。特别是,这并不困扰我,因为我银行的应用程序具有相同的行为......哈哈
    • @AlauddinAhmed 你可以做的是开始使用闪屏(如果你不是)并根据默认主题制作个性化主题,但更改活动的颜色以与你的闪屏匹配...
    • 我是混合应用程序开发的新手。因此,当我添加 android 平台时,对正在构建的活动不太了解。而且我正在使用启动画面,这也是在延迟之后出现的。我会解决这个问题的。
    • @AlauddinAhmed 如果你愿意,我正在使用基于默认的个性化半透明主题(因为 "@android:style/Theme.Translucent" 是姜饼的主题,它让我的日历拾取器变得丑陋)用于我的应用程序(1drv.ms/f/s!ArfH4lm-jzYYrpUnXrLcYHHVbISPRg),您可以查看是否有帮助,您可以在 Android 文档 (developer.android.com/guide/topics/ui/look-and-feel/…) 上找到有关主题的更多信息...
    猜你喜欢
    • 2023-03-03
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多