Cordova使用SplashScreen插件在另一个文件夹上查找cordova_plugins.js

时间:2015-02-12 14:29:55

标签: javascript android cordova

我使用了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/前缀。

我如何解决这个问题?

2 个答案:

答案 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用户时。