一旦phonegap网站加载,隐藏在android上的启动画面

时间:2012-10-03 16:54:46

标签: javascript eclipse cordova splash-screen

我有一个网站使用媒体查询在手机上看起来很好,我把它包装在phonegap中,所以我也可以将它作为一个应用程序。我已经将super.loadUrl设置为我的网站,这也有效,我还有一个工作的启动画面,我想跟上网站加载。我遇到了this blog post并按照说明操作。它是有效的,如果我是super.loadUrl到index.html(应用程序主页),但如果我loadUrl我的实际网站没有。

启动画面代码(主要java文件)

super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl("My External Site Url", 20000);

Index.html代码(如果我将loadUrl添加到它,这可行,但我想将loadUrl加载到我的网站)

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    navigator.splashscreen.hide();
}

但是,当我在我的外部html文件中使用上面的代码(并包含cordova.js)时,它无法识别onDeviceReady,因此启动画面不会隐藏自身,而且我等待了20秒。

我错过了什么吗?我是否允许从外部html文件(例如未构建到应用程序中的文件)中使用onDeviceReady,或者这应该是否正常,我只是引用了cordova错误?

3 个答案:

答案 0 :(得分:1)

事实证明,一个旧的包含prototype.js搞砸了。一旦我删除它,它的工作非常棒。

对于未来的人,我得到的错误是:

  • App不会对触摸做出反应,无法使用输入按钮和超链接。
  • 如果您按住输入,超链接等,它会获得橙色焦点框,但从未将我带到链接或激活输入按钮(光标或键盘)
  • Prototype阻止我在任何时候获取设备,但没有抛出JS错误(除了IE不喜欢addEventListener)

答案 1 :(得分:0)

尝试这样做:

<script> 
function init() {
    document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
    navigator.splashscreen.hide();
}
</script>
<body onload="init()">

虽然因为您使用的是jQuery,但您可能希望将其更改为:

$(document).ready(function() {
  document.addEventListener("deviceready", onDeviceReady, false);
});

答案 2 :(得分:0)

首先添加splashscreen插件如下:

$ phonegap plugin add org.apache.cordova.splashscreen

第二次构建项目,“splashscreen.js”将合并到“phonegap.js”

$ phonegap local build

祝你好运