Я разрабатываю ионное мобильное приложение, в котором я хочу перенаправить на сторонний веб-поток, который запрашивает согласие пользователей и перенаправляет на URL-адрес обратного вызова, который я должен указать для меня, чтобы получить токен в качестве токена разрешения для дальнейших вызовов API. Поскольку ionic сам по себе является мобильным приложением html5, что мне указать для URL-адреса перенаправления, чтобы элемент управления вернулся в мое мобильное приложение?
Какой URL-адрес перенаправления использовать при перенаправлении ionic для стороннего веб-потока
Ответы (3)
Аннотация:
Это не совсем то, о чем вы просите, но это работает очень хорошо.
Идея заключается в том, что вы используете $cordovaInAppBrowser для открытия веб-просмотра и прослушивания событий, а именно $cordovaInAppBrowser:loadstart
а также
$cordovaInAppBrowser:loaderror
затем вы можете просмотреть переданные аргументы ошибок и событий и использовать их, чтобы определить, хотите ли вы вызывать
$cordovaInAppBrowser.close();
который вернет вас в ваше ионное приложение
код:
angular.module('myApp', ['ionic', 'ngCordova']).controller('AppCtrl', function($rootScope, $ionicPlatform, $cordovaInAppBrowser) {
$scope.openThirdPartyWhatever = function() {
$ionicPlatform.ready(function() {
var options = {
location: 'yes',
clearcache: 'no',
toolbar: 'yes'
};
$cordovaInAppBrowser.open('http://www.myAwesomeSite.com', '_blank', options)
});
};
//at some point your app tries to load 'http://localhost:8100/send-me-back-to-app'
$rootScope.$on('$cordovaInAppBrowser:loadstart', function(e, event) {
//and this function is called, so you do something like
if(event.url === 'http://localhost:8100/send-me-back-to-app'){
$cordovaInAppBrowser.close();
}
});
$rootScope.$on('$cordovaInAppBrowser:loaderror', function(e, event) {
$cordovaInAppBrowser.close();
alert('sorry, something went wrong');
});
});
Полезные ссылки:
https://www.genuitec.com/products/gapdebug/
http://ngcordova.com/docs/plugins/inAppBrowser/
Похоже, вам нужно будет обрабатывать всплывающие окна и перенаправления, вам нужно будет установить плагин Cordova «inappbrowser», чтобы иметь возможность открывать сторонний веб-поток внутри браузера приложения, а затем вернуться к нормальному состоянию.
Пожалуйста, взгляните на эту статью, в которой они объясняют, как работать с аутентификацией в Facebook, используя методы входа в firebase с Ionic и Cordova. В нем описаны очень похожие шаги, которые вам понадобятся для решения вашей проблемы.
Простой вход в Firebase с Ionic и Cordova
Если вы спешите, начните с «Начало работы в эмуляторе», но я рекомендую быстро прочитать всю статью.
Я не уверен, какой сторонний веб-поток вы используете, но, возможно, это может вам помочь: Zapier
Я искал то же самое и нашел этот плагин: