如何创建一个应用程序,添加防溅屏插件,当设备准备好并且没有白色FLICKER出现时,防溅屏应该消失??这发生在Adobe构建上,也发生在android平台上的cli构建上!
以下是我在大约一周的时间里反复使用的简单步骤:
- 我创建了一个应用程序:phonegap创建应用程序
- 我添加了插件:phonegap本地插件add org.apache.cordova.splashscreen
- 我从www文件夹将其添加到config.xml文件中:
<feature name="SplashScreen">
<param name="android-package" value="org.apache.cordova.splashscreen" />
<!-- <param name="onload" value="true" /> -->
</feature>
现在插件已经设置好了。为了确保防溅屏在设备加载后消失,我添加了:
navigator.splashscreen.hide();
在函数onDeviceReady 下的index.js中
通过这些步骤,它可以正常工作。防溅屏显示正常,它可以消失,但会出现白色闪光。到底为什么会发生这种事?防溅屏是在所有东西加载之前隐藏的吗?为什么?我注意到,当我将防溅屏设置为一个值(例如3秒)时,白色闪光灯会消失,但我希望它在设备准备好后尽快消失,因为我有另一个效果,它从设备准备好开始,如果我在应用程序中输入第二个时间,加载速度会更快,防溅屏会保持在不必要的位置,效果会发生在防溅屏下面。
那么,如何最终解决这个问题呢?
我也试过
<preference name="AutoHideSplashScreen" value="false" />
我尝试将主体背景设置为黑色,因为我所说的效果是在应用程序开始时淡出的黑色div。
我还试着让webview变成黑色
<preference name="backgroundColor" value="0x000000" />
一切都没有运气。
我该如何解决这个问题?我认为最简单的方法是将webview设置为黑色,但我的preference命令不起作用。
我在config.xml中添加了<preference name="SplashScreenDelay" value="10000" />
以确保启动屏幕保持打开,然后在创建应用程序主页后(而不是在"设备就绪"之后立即)添加navigator.splashscreen.hide()
以隐藏它。如果我把它放在设备就绪之后,我会得到一个白色的闪光,因为我有条件地更改页面。
您甚至可以在navigator.splashscreen.hide()
上执行setTimeout,达到几百毫秒(或者不管延迟时间是多少)。
试试这个,它在s6边缘上运行良好
<preference name="SplashScreen" value="screen" />
<preference name="FadeSplashScreen" value="false" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="SplashScreenDelay" value="3000" />
试试这个
config.xml:
<preference name="AutoHideSplashScreen" value="false" />
<preference name="SplashScreenDelay" value="10000"/>
<gap:plugin name="org.apache.cordova.splashscreen" />
Android似乎没有AutoHide参数。我们将手动隐藏它。
javascript代码navigator.splashscreen.hide();
需要在config.xml中添加插件引用才能工作。
document.addEventListener('deviceready', function() {
navigator.splashscreen.hide();
});
在应用的config.xml中设置这些值
<preference name="FadeSplashScreen" value="true" />
<preference name="FadeSplashScreenDuration" value="1.5" />
<preference name="ShowSplashScreenSpinner" value="false" />
<preference name="SuppressesIncrementalRendering" value="true" />