Cordova:cordova_plugins.js无法加载资源

时间:2017-10-25 00:23:16

标签: android cordova

我正在学习使用cordova,我刚刚在我的cordova应用程序中正常安装了android平台,一切正常,除了一些我还没打算修复的错误(外部资源文件)从javascript加载)。我刚刚安装了phonegap-plugin-push来处理推送通知支持,我相信我必须首先注册应该收到通知的设备,这样我就可以在没有任何其他配置的情况下运行应用程序而不是下载库并放置{ {1}}文件位于根应用程序文件夹中。

我尝试找到推送的命令,但我无法这样做,我认为可能是因为控制台中出现了错误

google-services.json

所以我一直在google上搜索,我发现除了Failed to load resource: net::ERR_FILE_NOT_FOUND /cordova_plugins.js 之外我不需要添加任何东西,因为我已经在cordova应用程序安装上做了以便使用cordova功能。

我不知道是否必须添加其他内容或者如果我为了使这个插件工作而错过了一些代码,可能这个插件与cordova不兼容但是phonegap是建在cordova上所以我不# 39;不知道。

如果有必要,这是我正在使用的版本:

  • Cordova-CLI:7.1.0
  • Google Play服务:46
  • Android支持存储库:47
  • Android SDK:26

1 个答案:

答案 0 :(得分:0)

我没有说在cordova中运行的应用程序是使用angularangular-ui-router完成的。

经过长时间的测试后,我发现问题是由angular-ui-router引起的,因为我使用angular-ui-router我在head标签中设置了<base href>标签这就是使cordova失败的原因,现在实际上是如何使用cordova,这是因为文件的放置方式。在Android上,文件放在android_asset/www/中,我不知道文件是如何放在其他平台上的,但是当<base href>标签设置为新值时,调用现在正在尝试在未放置文件的目录中完成。

角度解决方案是不设置<base href>标记并在配置中禁用html5Mode

app.config(["$stateProvider", "$locationProvider", "$urlRouterProvider", 
    function($stateProvider, $locationProvider, $urlRouterProvider){
        // Set the default url state
        // NOTE: Do not set <base href> tag, this breaks cordova calls
        $urlRouterProvider.otherwise("/");

        // Disable html5 native router mode
        $locationProvider.html5Mode(false);

        ......
    }
]);

我已经意识到这一点,因为在Chrome设备远程检查器中我收到错误目录的错误调用,通过查看应用程序运行的URL我看到调用不在正确的目录中