【问题标题】:Exclamation marks added to URLs in CordovaCordova 中的 URL 添加了感叹号
【发布时间】:2019-01-03 14:02:53
【问题描述】:

我正在使用 Cordova 开发一个混合应用程序来包装现有的 React Web 应用程序。

当我启动我的应用程序时,有时数据没有加载,我注意到 URL 使用 file:// 协议而不是 http://localhost:80803 并在末尾附加了一个感叹号。

我该如何解决这个问题?

请看下面的例子:

  • file:///api/metaData/!
  • file:///sideNavigation/!

【问题讨论】:

  • 也许您应该使用网址的确切完整路径?只需将 http://localhost:80803 移动到变量中并添加到每个 url,如 `${baseUrl}/api/metaData/`
  • 是的,或者在替代方案中去掉最后的斜线和感叹号。这些都是解决方法。我想找到根本原因。谢谢
  • 你读过cordova-plugin-file吗?它似乎会影响您的应用程序。
  • @Dracontis 我没有使用那个插件。 Cordova 默认使用文件协议从设备文件系统获取资源/资产。以斜杠开头的相对路径默认为file://,没有第三个斜杠,这会导致获取失败。解决方案 AFAIK 是为本地资源使用“./”前缀,为远程资源添加 http/https 前缀。
  • 那么你应该发布一个答案并接受它。

标签: javascript reactjs cordova hybrid-mobile-app phonegap


【解决方案1】:

这很奇怪,我承认我从来没有想过,但这些是你应该尝试的一些测试:

  1. 你使用 react-router 吗?可能是路由器弄乱了网址,尝试在科尔多瓦应用程序中使用哈希路由器。我发现它更坚固。
  2. 如何构建这些资源的 URL?也许它是构建 url 的代码中的东西。
  3. 从您的屏幕截图中,我可以看到您正在尝试使用 iOS,您在使用 Android 时是否遇到同样的问题?
  4. 在 iOS 中,您使用的是什么引擎?如果您还没有使用过,请尝试最新的 wkengine (https://github.com/apache/cordova-plugin-wkwebview-engine)
  5. 您尝试过本地服务器吗?像这样https://github.com/apache/cordova-plugins/tree/wkwebview-engine-localhost

【讨论】:

  • 感谢您的回复。 1. 已经在使用哈希路由器(否则它不会工作), 3. 在 Android 上更常见。将尝试4和5,谢谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多