Я пытаюсь интегрировать oauth в свое гибридное приложение и использую angularjs 1 с Cordova. Я пытался использовать этот плагин https://github.com/EddyVerbruggen/cordova-plugin-safariviewcontroller вместе с https://github.com/EddyVerbruggen/Custom-URL-scheme
Но это не прямолинейно и не ясно для меня. Столкнулся с двумя проблемами
- Невозможно перенаправить в приложение после выполнения oauth.
- Как закрыть пользовательскую вкладку Chrome и получить данные в приложении после завершения oauth.
Ниже то, что я пытаюсь.
Код на стороне клиента:
var options=[{url:oauthPostURL,hidden:false,animated:false}];
$scope.openUrl = function(options) {
console.log("inside openurl--");
var deferred = $q.defer();
try{
cordova.exec(
// success function
function(response){
deferred.resolve(response);
},
//failure function
function(response){
deferred.resolve(false);
},
"ChromeCustomTabPlugin", "show", options);
}catch(e){
console.log("error in corodva plugin ::"+e);
}
return deferred.promise;
}
function handleOpenURL(url) {
setTimeout(function() {
//SafariViewController.hide();
var data = decodeURIComponent(url.substr(url.indexOf('=')+1));
console.log('Browser data received: ' + data);
}, 0);
}
кто будет вызывать эту функцию handleopenurl?
В плагине нет метода hide(), чтобы закрыть пользовательскую вкладку Chrome.
ServerSide :
Я использую ChromeCustomTabPlugin.java из упомянутого выше плагина.
Помогите пожалуйста мучаюсь уже 2 день. Было бы здорово, если бы кто-нибудь мог привести сквозной пример