#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
плагин):
- Конденсатор 2: https://capacitorjs.com/docs/apis/browser
- Конденсатор 3 (скоро будет выпущен): https://capacitorjs.com/docs/v3/apis/browser
На Android это открывает Chrome WebView, на iOS — SFSafariViewController, поэтому пользователь никогда не покидает приложение на самом деле, это дополнительная активность (или ViewController), которая будет поверх стека навигации приложения.
В описании плагина сказано:
API браузера позволяет легко открывать сеанс браузера в приложении для отображения внешнего веб-контента, обрабатывать потоки аутентификации и многое другое.
Вы также можете добавить прослушиватели для прослушивания событий загрузки страницы.