我使用了Cordova 4.2.0
和插件org.apache.cordova.splashscreen
。
我的Android应用程序运行且插件正常运行。但是,我无法在我的javascript文件中隐藏启动画面。
所以,这有效:
<preference name="SplashScreenDelay" value="10000"/>
这不起作用:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
//{Angular app creation omitted here}
setTimeout(function() {
navigator.splashscreen.hide();
}, 10000);
}
我怀疑这种情况正在发生,因为Android会查找指定文件夹中不存在的文件。
02-12 12:09:37.561: E/AndroidProtocolHandler(27796): Unable to open asset URL: file:///android_asset/www/js/cordova_plugins.js
实际上文件的真实路径是www/cordova_plugins.js
(Android项目中的内部资源文件夹)。
我尝试在我的index.html
上调用此文件,但抛出了另一个错误(并且应用程序未启动):
02-12 12:16:32.100: E/AndroidProtocolHandler(30211): Unable to open asset URL: file:///android_asset/www/js/plugins/org.apache.cordova.splashscreen/www/splashscreen.js
真实路径再次没有js/
前缀。
我如何解决这个问题?
答案 0 :(得分:1)
我今天遇到了同样的问题,而且@rcorreia已经完美地回答了。
cordova.js 和 cordova_plugins.js 应位于同一目录中。更改cordova.js的位置后,它将在同一目录中搜索文件cordova_plugins.js
如果您使用Android平台,则文件应位于 YOUR_APP \ platforms \ android \ platform_www
正如此处所建议的,http://ngcordova.com/docs/install/
在cordova.js之前和之后的AngularJS / Ionic文件中包含ng-cordova.js或ng-cordova.min.js(因为ngCordova依赖于AngularJS)。 < / p>
更快的解决方案:只需安装cordova,它就会自动找到并获取文件。
希望它有所帮助。
答案 1 :(得分:0)
Cordova正在寻找错误的文件夹,因为我的onDeviceReady
调用是在js/cordova.js
上完成的,我的自定义文件用于Cordova事情。库cordova.js
上有一个搜索cordova.js
文件夹的方法。该库使用找到的文件夹来加载插件。由于我的自定义文件具有相同的名称,因此该库认为插件文件夹位于js文件夹中,当它位于root用户时。