cordova app在启动画面显示之前显示黑屏

时间:2016-04-30 13:11:53

标签: cordova

我正在使用英特尔XDK开发一个网络应用程序,该应用程序使用Cordova在线构建我的应用程序。 我用启动画面插件添加了一个启动画面。当我启动我的应用程序时会出现启动画面。但是在启动画面显示之前,黑屏首先显示了一段时间。如何让它在没有黑屏的情况下立即显示闪屏。

我用Google搜索了几天......我发现很多人都有这个问题。但似乎解决方案无法帮助我..

我已经尝试将AutoHideSplashScreen设置为false并且SplashScreenDelay = 10000(或更高),并在所有内容准备就绪时隐藏启动画面(app.Ready,deviceready ..)

任何帮助将不胜感激,谢谢。

5 个答案:

答案 0 :(得分:2)

1)如果你使用了一些 splashscreen.png ,你可以在 {Project} \ res \ values 下创建android样式文件(例如splashscreen-style.xml)和将splashscreen.png放入 {Project} \ res \ drawable 文件夹(或 drawable-mdpi,drawable-xhdpi ,...),它将自动映射 @绘制/溅射屏幕

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="YourThemeName" parent="android:style/Theme.Light.NoTitleBar.Fullscreen">
        <item name="android:windowBackground">@drawable/splashscreen</item>
    </style>
</resources>

2)应用 config.xml

    <edit-config file="AndroidManifest.xml" mode="merge"
             target="/manifest/application/activity">
        <activity android:theme="@style/YourThemeName" />
    </edit-config>

它必须有效,至少对于 cordova 6.5.0 :)和更有趣的版本

您还可以看到https://simonerescio.it/en/2014/05/phonegap-android-splashscreen-application

答案 1 :(得分:0)

我有同样的问题,文档有点脱节。

Config.XML确保您拥有以下行。 Android:将超时时间调整到适合的范围。(因为我在DOM中预加载了一些页面,因此对我来说是10000)。

 <preference name="SplashScreen" value="screen" />
 <preference name="SplashScreenDelay" value="10000" />

奥斯:

<preference name="FadeSplashScreen" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="AutoHideSplashScreen" value="false" />
在Index.Js中

function () {
document.addEventListener('deviceready', onDeviceReady.bind(this), false);
function onDeviceReady() {
setTimeout(function () {
        navigator.splashscreen.hide();
    }, 50);
}

这使得启动屏幕保持打开状态,直到平台为我准备好。

答案 2 :(得分:0)

经过大量的研究后,我解决了这个问题。

首先转到 intelxdk.config.additions.xml 文件

在顶部添加此行

<preference name="SplashScreenDelay" value="8000" /> //根据您的需要更改值,以毫秒为单位

同时修改FadeSplashScreenDuration(iOS)

      `<preference name="FadeSplashScreenDuration" value="8000"/>`

这是完整的代码

              

<!-- 'value' = number of milliseconds to display the splash screen in a Cordova build. -->
<!-- This preference only affects Cordova builds for Crosswalk and Android. -->
 <preference name="SplashScreenDelay" value="8000" /> 

<platform name="ios">
    <!-- below requires the splash screen plugin -->
    <!-- docs: https://github.com/apache/cordova-plugin-splashscreen -->
    <preference name="AutoHideSplashScreen" value="false" />
    <preference name="FadeSplashScreen" value="false"/>
    <preference name="FadeSplashScreenDuration" value="8000"/>
    <preference name="ShowSplashScreenSpinner" value="true"/>

    <!-- below requires the status bar plugin -->
    <!-- docs: https://github.com/apache/cordova-plugin-statusbar -->
    <!-- see http://devgirl.org/2014/07/31/phonegap-developers-guid -->
    <preference name="StatusBarOverlaysWebView" value="false" />
    <preference name="StatusBarBackgroundColor" value="#000000" />
    <preference name="StatusBarStyle" value="lightcontent" />
</platform>

<platform name="android">
    <!-- below requires the splash screen plugin -->
    <!-- docs: https://github.com/apache/cordova-plugin-splashscreen -->
      <preference name="ShowSplashScreenSpinner" value="true"/>
    <preference name="SplashMaintainAspectRatio" value="true" />
</platform>

<!-- use this feature to add command-lines to be used by Crosswalk builds on device -->
<!-- see http://peter.sh/experiments/chromium-command-line-switches/ for complete list -->
<intelxdk:crosswalk xwalk-command-line="--disable-pull-to-refresh-effect" />
<!-- ignore gpu blacklist for larger collection of gpu accelerated devices -->
<intelxdk:crosswalk xwalk-command-line="--ignore-gpu-blacklist" />

答案 3 :(得分:0)

转到confi.xml并尝试此代码。它对我有用。

<access origin="*" />
<preference name="SplashScreen" value="screen"/>
<preference name="UIWebViewBounce" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="SplashScreenDelay" value="5000"/>
<preference name="FadeSplashScreenDuration" value="5000"/> 
<preference name="AutoHideSplashScreen" value="true"/>
<preference name="SplashShowOnlyFirstTime" value="false"/>
<preference name="FadeSplashScreen" value="false" /> 



<!-- Ionic supports Android Jellybean and up --> 
<preference name="android-minSdkVersion" value="16" />

<!-- Don't store local data in an iCloud backup. Turn this to "cloud" to enable storage 
     to be sent to iCloud. Note: enabling this could result in Apple rejecting your app.
-->
<preference name="BackupWebStorage" value="none" />

<feature name="StatusBar">
  <param name="ios-package" value="CDVStatusBar" onload="true" />
</feature>
<feature name="SplashScreen">
  <param name="ios-package" value="CDVSplashScreen"/>
  <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen"/>
  <param name="onload" value="true"/>
</feature>

答案 4 :(得分:0)

转到platform / android / AndroidMainfest.xml。 并搜索android:theme =“ android:style / Theme.DeviceDefault.NoActionBar”。

Android will load a blank layout before it loads based on the theme you have set for it. The solution is to the theme of the splash activity to a transparent one.

并将其更改为类似android:theme =“ android:style / Theme.Translucent.NoActionBar”。