Ionic 3 出现错误 - 本机:尝试调用 HTTP.setSSLCertMode,但未安装 HTTP 插件

Posted

技术标签:

【中文标题】Ionic 3 出现错误 - 本机:尝试调用 HTTP.setSSLCertMode,但未安装 HTTP 插件【英文标题】:Ionic 3 getting error - Native: tried calling HTTP.setSSLCertMode, but the HTTP plugin is not installed 【发布时间】:2021-11-10 09:40:58 【问题描述】:

我想在我的 ionic 3 应用中实现 ssl pinning。我已经使用以下链接安装了@ionic/native http 插件 - https://ionicframework.com/docs/v3/native/http/

一切都设置好后,当我尝试运行应用程序时,它显示以下错误 -

Native:尝试调用 HTTP.setSSLCertMode,但未安装 HTTP 插件。 安装 HTTP 插件:'ionic cordova plugin add cordova-plugin-advanced-http'

我已经尝试了所有可能的在线解决方案,但仍然无法正常工作。

我尝试将代码移动到平台就绪函数中,插件引用似乎很好,我尝试清理然后 npm install,仍然没有运气。

这里出了什么问题? 非常感谢您的帮助,因为我现在正在摸不着头脑!

提前致谢!

更新

this.http.setSSLCertMode("pinned")
.then((res) => console.log(res))
.catch((err) => console.log(err));
this.http.get("url", ,)
.then((data) => console.log(data))
.catch((err) => console.log(err));

这是我的代码。如果我删除代码中的 setSSLCetMode 部分,则错误消失并发出 GET 请求。

为什么会发生这种行为?

【问题讨论】:

所以你也运行这个命令? ionic cordova plugin add cordova-plugin-advanced-http 是的,我在@ionic/native http 之前添加了这个命令 请检查我更新的问题 【参考方案1】:

您可能想尝试删除您正在生成构建的任何平台,以便将其添加回来。该插件可以从您的 package.json 为您的项目安装,但不适用于您使用的特定平台:

ionic cordova platform rm <insert platform here>

然后

ionic cordova platform add <insert platform here> 

之后重建您的项目。似乎很清楚,它认为您没有安装该特定插件,因此它必须以某种方式甚至间接地与之相关。也可能是您还需要更新插件。

【讨论】:

我已经尝试删除并重新添加平台,但它没有帮助我更新了我的问题,如果我删除 this.http.setSSLCertMode 行,则检测到插件并发出请求。

以上是关于Ionic 3 出现错误 - 本机:尝试调用 HTTP.setSSLCertMode,但未安装 HTTP 插件的主要内容,如果未能解决你的问题,请参考以下文章

我尝试在我的 android 设备上运行 ionic 应用程序并且出现错误

警告不会出现在Ionic 2中的(点击)或(点击)事件中

ionic 2中的本机facebook登录

Ionic 3 - 内联视频在 iOS 10 的本机播放器中全屏打开

Ionic 4 本机插件地理定位给了我“找不到模块:错误:无法解析 'rxjs/Observable'”

实现 ionic 的本机 HTTP 拦截器时出现打字稿错误