Могу ли я перейти в Интернет, не выходя из приложения-конденсатора?

#cordova #ionic-framework #capacitor

#кордова #ionic-framework #конденсатор

Вопрос:

У нас есть веб-приложение с рабочим процессом входа в ADFS / GoogleId, реализованным с перенаправлениями. Наше приложение перенаправляет на сервер ADFS, который выполняет вход в систему или проверяет пользователя, а затем ссылается обратно на наше приложение. Достижимо ли это в Ionic / Capacitor? На этой странице предполагается, что переход от вашего приложения к другому должен автоматически открываться в браузере, и мы видим именно такое поведение.

Есть ли какой-нибудь способ зарегистрировать определенные домены как «часть» приложения Capacitor, чтобы мы могли перемещаться, не выходя из webview? Это означало бы, что возвращаемый URL формы ‘http://localhost ‘ (или ‘capacitor://localhost’ для ios) может сработать.

В качестве альтернативы, если браузер берет на себя управление доменом adfs, как я могу создать ссылку, которая указывает обратно в приложение Capacitor?

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

1. Похоже, я пытаюсь делать то же самое, что и эти ребята , которые умнее, решительнее и опытнее, но пока не добились успеха .

Ответ №1:

Вы можете разрешить навигацию по определенным URL-адресам, добавив allowNavigation внутри server объекта в файле capacitor.config.json

 "server": {
    // Capacitor to open URLs belonging to these hosts inside its WebView.
    "allowNavigation": [
      "example.org",
      "*.example.org",
      "192.0.2.1"
    ]
  }
  

https://capacitorjs.com/docs/config

Обратите внимание, что это не предназначено для использования в производственных приложениях, не должно использоваться для OAuth или любых других внешних URL, которыми вы не владеете.

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

1. Я понимаю, что мы можем открыть веб-сайт, который предоставляет функциональность входа непосредственно в Capacitor, НО мне все равно нужно указать «URL обратного вызова» где-нибудь в консоли моего поставщика авторизации. Для чего я могу установить этот URL обратного вызова в случае приложения capacitor?

2. этот ответ не на 100% правильный, после добавления этого сервера ionic capacitor sync ios удаляет его

3. вам нужно отредактировать корневой каталог capacitor.config.json . Если ionic cli удаляет это из корневого файла, то это ошибка ionic, и вы должны сообщить об этом там, а не говорить, что мой ответ неверен

4.Согласно документации Это не предназначено для использования в производстве. capacitorjs.com/docs/config

Ответ №2:

Вы можете открыть URL-адрес в так называемом встроенном браузере приложения с помощью Browser API ( @capacitor/browser плагин):

На Android это открывает Chrome WebView, на iOS — SFSafariViewController, поэтому пользователь никогда не покидает приложение на самом деле, это дополнительная активность (или ViewController), которая будет поверх стека навигации приложения.

В описании плагина сказано:

API браузера позволяет легко открывать сеанс браузера в приложении для отображения внешнего веб-контента, обрабатывать потоки аутентификации и многое другое.

Вы также можете добавить прослушиватели для прослушивания событий загрузки страницы.