Phonegap 应用程序 v.3.4.0 忽略 navigator.splashscreen.hide()
Posted
技术标签:
【中文标题】Phonegap 应用程序 v.3.4.0 忽略 navigator.splashscreen.hide()【英文标题】:Phonegap Application v.3.4.0 Ignores navigator.splashscreen.hide() 【发布时间】:2014-04-05 01:08:11 【问题描述】:我有一个在 Phonegap v.3.4.0 上运行的 ios 应用程序。我正在尝试使用org.apache.cordova.splashscreen
插件来消除启动时的闪烁。我已经使用CLI 成功安装了插件并准备了config.xml
,这样它就可以保持启动页面,直到给出命令执行其他操作。但是,我的 javascript 文件对应该隐藏启动画面的命令 navigator.splashscreen.hide()
没有响应。关于为什么会发生这种情况的任何想法?相关代码如下。
非常感谢。
config.xml
<gap:plugin name="org.apache.cordova.splashscreen" />
<feature name="SplashScreen">
<param name="ios-package" value="CDVSplashScreen" />
<param name="onload" value="true" />
</feature>
<preference name="AutoHideSplashScreen" value="false" />
<preference name="ShowSplashScreenSpinner" value="false" />
index.html 的底部
<script type="text/javascript" src="js/cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript" src="js/splashscreen.js"></script>
<script type="text/javascript" src="js/main_js_file.js"></script>
<script type="text/javascript">
app.initialize();
</script>
【问题讨论】:
【参考方案1】:在脚本文件中添加事件监听器以查看设备是否准备就绪(即查看是否所有文件都已加载
document.addEventListener("deviceready", onProjectLoadComplete, true);
当设备准备好时隐藏启动画面
function onProjectLoadComplete()
navigator.splashscreen.hide();
如果这不起作用。请将代码发布到您隐藏启动画面的位置。确保您也安装了 cordova devie 插件
【讨论】:
感谢您的回复。我正在使用您上面建议的事件侦听器,但是问题仍然存在。 “devie”插件是指“设备”插件。如果是这样,我还没有安装它。我会尝试并报告。【参考方案2】:我犯了两个错误:
-
首先,我在
index.html
中直接采购cordova.js
,而不是在构建应用程序时允许cordova 插入它(在我的例子中是XCode)。所以你仍然需要将<script type="text/javascript" src="cordova.js"></script>
放在body 底部,但它不必指向任何文档。
其次,我把我的应用程序放在了错误的www
目录中。虽然看起来很奇怪,但我通过反复试验发现,Cordova 3.4 在AppName/platforms/ios/www
中调用索引文件,而不是在AppName/www
中调用索引文件。
【讨论】:
以上是关于Phonegap 应用程序 v.3.4.0 忽略 navigator.splashscreen.hide()的主要内容,如果未能解决你的问题,请参考以下文章
Cordova / Phonegap 忽略 iOS 中 div 的高度值
iOS7状态栏和inappbrowser(Phonegap Build)