无法在我的 Cordova iOS 应用程序中连接到本地 Web 服务器

Posted

技术标签:

【中文标题】无法在我的 Cordova iOS 应用程序中连接到本地 Web 服务器【英文标题】:Can't connect to local web server in my cordova iOS app 【发布时间】:2018-12-14 10:58:25 【问题描述】:

在 Cordova ios 应用程序中从 UIWebView 切换到 WKWebView 时,从本地文件系统加载 Web 应用程序时,同源策略存在常见的已知问题。

典型的解决方法是使用本地 Web 服务器(监听 localhost),它为您的 html、CSS、JS 提供服务。

这就是我尝试切换到这个 cordova 插件的原因: https://github.com/apache/cordova-plugins/tree/wkwebview-engine-localhost

不幸的是,结果是一个空白屏幕。在我调用的 Web 调试控制台中

console.log(location.href)

返回about:blank。然后我尝试从控制台使用这个 JS 调用导航到本地 Web 服务器:

location.href = 'http://localhost:8080';

但是网络视图停留在about:blank。我还尝试了不同的端口,当然我检查了我的config.xml(例如<allow-navigation href="*" />

我认为插件有问题,所以我切换到Ionic Webview。有趣的是,它具有完全相同的行为。

一般来说,我可以导航到其他站点,但不能导航到localhost:[port],所以我猜这些插件根本无法启动 Web 服务器。但是,我找不到其他人遇到这个问题。

这个问题的原因可能是什么?有没有办法调试这个?不幸的是,我的网络控制台没有报告任何问题。

【问题讨论】:

【参考方案1】:

这里的问题不是启动 Web 服务器,而是连接到它。尝试通过隧道连接这些连接的 *** (MobileIron) 阻止了通信。不幸的是,目前 WkWebView 根本没有解决方案。

【讨论】:

以上是关于无法在我的 Cordova iOS 应用程序中连接到本地 Web 服务器的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Cordova / iOS 中显示本地图像

Cordova 应用程序无法在 iOS 设备上正确显示

无法在新的 ios8 中运行我的科尔多瓦应用程序

UIFileSharingEnabled 在我的适用于 ios 的科尔多瓦应用程序中无效

自定义 Cordova 插件 iOS index.js 无法识别我的 .js 文件

如何在我的 Cordova 应用程序中创建 android.json?