离子电容器 - 使用 Cordova 插件

Ionic Capacitor - using Cordova plugins

我试图在 iOS 和 Web 上使用 @ionic-native/http,但没有成功。应用程序在两个平台上启动,但插件不起作用。

依赖关系

我希望涵盖最重要的部分。

重现步骤

应用程序

  1. ionic start myApp tabs
  2. npm install --save @capacitor/cli @capacitor/core
  3. npm run build --prod
  4. npx cap init <name> <id>
  5. npx cap add ios
  6. npx cap copy
  7. npx cap open ios
    • 一般 -> 签约 -> 团队

插件

  1. npm install cordova-plugin-advanced-http
  2. npm install @ionic-native/http
  3. npx cap sync
  4. here
  5. 所示使用

根据documentation(我可能误解了)应该是这样。

问题

尝试调用 API 时:

网络

Native: tried calling HTTP.get, but Cordova is not available. Make sure to include cordova.js or run in a device/simulator

我知道我不使用 Cordova 本身,但它不应该包含在 npx cap sync 中吗?

iOS

[error] - ERROR {"line":38,"column":38,"sourceURL":"capacitor://localhost/tab2-tab2-module.js"}

我很幸运终于找到了更多信息。

iOS

我不太确定为什么,但是这个额外的插件帮助了 https://github.com/sneas/ionic-native-http-connection-backend。可以通过 HttpClient 发出请求,他们使用 Cordova 插件绕过代理。

网络

根据 https://github.com/ionic-team/capacitor/issues/767#issuecomment-415481452

,电容器无法在浏览器上运行

所以我的假设是错误的。之前提到的 plugin 将通过 HttpClient 委托请求,因此这是浏览器的一个很好的解决方法,但不会解决 CORS 问题。

CORS issue at this point can be handled by a proxy.