phonegap 3.1 - 无法在设备上隐藏启动画面

时间:2013-10-22 10:49:08

标签: android cordova

使用phonegap 3.1我正试图在设备准备好时隐藏启动画面:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
 navigator.splashscreen.hide();
}

但它返回:

  

无法调用未定义的方法'hide'

导航器对象不包含splashscreen属性。

我已经在phonegap 2.9上试过了,它运行正常。

6 个答案:

答案 0 :(得分:10)

经过研究和实验,我们必须做的就是让它发挥作用:

cordova plugin add org.apache.cordova.splashscreen

cordova build

然后,cordova构建在config.xml中添加了错误的行 - 所以我们不得不将其更改为以下内容:

 <feature name="SplashScreen">
        <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
 </feature>

在您的主要活动中

 super.setIntegerProperty("splashscreen", R.drawable.splash);
 super.setIntegerProperty("splashScreenDelay", 10000); //time to display the splash

最后,我们可以使用javascript中的hide方法。

答案 1 :(得分:3)

您是否使用CLI添加SplashScreen plugin?您必须使用$ cordova plugin add org.apache.cordova.splashscreen添加插件(将插件代码从plugins.cordova.io复制到/yourApp/plugins/org.apache.cordova.splashscreen/,然后再复制cordova build以复制插件代码进入适当的平台位置。

答案 2 :(得分:1)

如果您正在使用phonegap构建,而不是

cordova plugin add ...
从命令行

,您需要将插件和功能添加到config.xml

<gap:plugin name="org.apache.cordova.splashscreen" />
<feature name="SplashScreen">
    <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
    <param name="ios-package" value="CDVSplashScreen" />
</feature>

答案 3 :(得分:0)

我唯一可以猜到的是仔细检查你的HTML头部是否<script type="text/javascript" charset="utf-8" src="cordova.js"></script>正在调用JS。对不起,还没有搞砸3.1。

答案 4 :(得分:0)

添加:

<preference name="SplashScreen" value="splash.png" />
<preference name="SplashScreenDelay" value="3000" />

navigator.splashscreen.hide()对我来说也不起作用。

更新: navigator.splashscreen.hide()仅适用于在线构建(phonegap build)。

答案 5 :(得分:0)

升级到Phonegap Desktop 0.3.6后,我遇到了类似的问题,我的一个旧应用程序停留在启动画面上。在配置窗口中,它显示了正确的应用程序名称和版本,并在我修改config.xml时立即更新。在控制台中,我只有一个错误:500

http://localhost:3000/cordova_plugins.js

新的应用程序正常运行。

我尝试了以上所有内容:

  • 启动画面插件和配置
  • cordova.jscordova_plugins.js添加到index.html。这是不再需要的,因为许多版本之前 - 构建为你做了。
  • platforms/android/assets/www文件夹中有cordova.jscordova_plugins.js个文件存在
  • config.xml中指定了<content src="index.html" />

最终解决我问题的是彻底删除platforms文件夹并再次运行cordova platform add android。我想在每次Phonegap升级后这样做是安全的。