0

我有一个使用媒体查询在手机上看起来不错的网站,我将它包装在 phonegap 中,这样我也可以将它作为应用程序使用。我已将 super.loadUrl 设置为我的网站,并且这很有效,我还有一个工作启动画面,我想在网站加载之前跟上它。我遇到了这篇博文并按照说明进行操作。如果我是 index.html(应用程序主页)的 super.loadUrl,但如果我 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 错误?

4

3 回答 3

1

事实证明,prototype.js 的旧包含搞砸了。一旦我删除它,它就会非常有效。

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

  • 应用程序对触摸没有反应,无法使用输入按钮和超链接。
  • 如果您按住输入、超链接等,它会显示橙色焦点框,但从未将我带到链接或激活输入按钮(光标或键盘)
  • 原型阻止我在任何时候准备好设备,但没有抛出 JS 错误(除了 IE 不喜欢 addEventListener)
于 2012-10-11T11:20:13.940 回答
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);
});
于 2012-10-04T14:47:28.323 回答
0

首先添加启动画面插件,如下所示:

$ phonegap plugin add org.apache.cordova.splashscreen

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

$ phonegap local build

祝你好运

于 2013-12-26T08:16:59.060 回答