【问题标题】:Apache Cordova for android do not load resourcesApache Cordova for android 不加载资源
【发布时间】:2016-09-20 08:53:59
【问题描述】:

我创建了一个 Angular 2 应用程序,我正在寻找使用 Apache Cordova 创建一个 Android 应用程序。当我在 Marshmallow 模拟器中加载应用程序时,应用程序不会加载任何声明的资源。如果我使用浏览器插件,它会按预期工作。使用 Chrome 检查设备的控制台会显示以下输出。

Chrome 控制台输出:

如果我运行 Cordova 初始示例,它可以在同一个 Android 模拟器中运行,因此它必须是源问题。代码可在Github repository 中查看。应用在www目录下,为了测试需要添加android平台。

$ cordova platform add android
$ cordova run android

我找不到这个问题的答案:

  • 资源看起来不错 - 丢弃文件路径问题。
  • 浏览器插件有效 (Chrome) - 丢弃应用程序错误和安全策略。
  • cordova 示例在 Android 上按预期工作 - 丢弃环境错误。

请问,有人知道这个设置有什么问题吗?

【问题讨论】:

    标签: android cordova angular


    【解决方案1】:

    我找到了根本原因。问题是通过使用angular-cli 工具,标签<base href="/"> 被自动添加。根据tag documentation,它是解析所有文档的相对 URL 的基础。

    对于此用例,删除基本标记或将其配置为有效值(如<base href="/android_asset/www/">)可以解决问题。因为我不使用路由功能(还),所以我觉得删除它或设置像 <base href="."/> 这样的值更适合更多平台构建。

    【讨论】:

      【解决方案2】:

      您是否尝试过修改 Content-Security-Policy? 或者如何修改 config.xml 中的“允许意图”? 当我遇到资源问题时,这些是有帮助的。

      【讨论】:

      • 感谢@hgoon 的评论。不幸的是,这并没有帮助。我的所有资源都在本地加载,并遵循我尝试添加的cordova-plugin-whitelist 文档:<allow-intent href="*" />
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 2019-02-12
      • 2015-10-24
      • 1970-01-01
      • 2016-02-19
      相关资源
      最近更新 更多