Ionic 3 получает ошибку — Родной: попытался вызвать HTTP.setSSLCertMode, но плагин HTTP не установлен

#cordova #ionic-framework #ionic3 #cordova-plugins

Вопрос:

Я хочу реализовать закрепление ssl в своем приложении ionic 3. Я установил плагин @ionic/native http, используя следующую ссылку — https://ionicframework.com/docs/v3/native/http/

После того, как все было настроено, когда я пытаюсь запустить приложение, оно показывает следующую ошибку —

Родной: попытался вызвать HTTP.setSSLCertMode, но плагин HTTP не установлен. Установите плагин HTTP: «плагин ionic cordova добавить плагин cordova-расширенный-http»

Я перепробовал все возможные решения, доступные в Интернете, но до сих пор не могу заставить это работать.

Я попытался переместить код внутри функции готовности платформы, ссылки на плагины выглядят нормально, я попытался очистить, а затем установить npm, но все равно не повезло.

Что здесь происходит не так? Помощь действительно ценится, так как сейчас я чешу в затылке!!

Заранее спасибо!

Обновить

 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.

Почему происходит такое поведение?

Комментарии:

1. Значит, вы также выполняете эту команду? ionic cordova plugin add cordova-plugin-advanced-http

2. Да, я добавил эту команду перед @ionic/native http

3. пожалуйста, проверьте мой обновленный вопрос

Ответ №1:

Возможно, вам захочется попробовать удалить любую платформу, для которой вы создаете сборку, и добавить ее обратно. Плагин может быть установлен из вашего пакета.json для вашего проекта, но не для конкретной платформы, которую вы используете:

 ionic cordova platform rm <insert platform here>
 

затем

 ionic cordova platform add <insert platform here> 
 

после этого перестройте свой проект. Кажется довольно очевидным, что он не думает, что у вас установлен этот конкретный плагин, поэтому он должен быть каким-то образом связан с этим, даже косвенно. Возможно также, что вам также потребуется обновить плагин.

Комментарии:

1. Я попытался удалить и добавить обратно платформу, но это не помогло, я обновил свой вопрос, если я удалю строку this.http.setSSLCertMode, плагин будет обнаружен и запрос будет выполнен.