我正在使用 Ionic和cordova 构建一款Android应用。 我有一个wordpress网站 - oauth2插件在哪里安装了一些访问功能。我想首先获取代码,然后发送帖子以检索令牌。我在网络浏览器中进行了测试,效果很好:
location.replace('https://xxx/oauth/authorize?response_type=code&client_id=xxx&redirect_uri=http://192.168.0.129:8100/');
我在客户端登录我的网站后获取代码并将其重定向到我的应用程序,该应用程序位于ip 192.168.0.129:8100,代码在url中 - 它是我的。但是在机器人中我正在使用:
var options = {
clearcache: 'yes',
toolbar: 'no'
};
$cordovaInAppBrowser.open('https://xxx/oauth/authorize?response_type=code&client_id=xxx&redirect_uri=http://192.168.0.129:8100/', '_blank' , options)
.then(function(event) {
}).then(function(){
});
一切正常但不重定向 - 它无法再次加载我的应用程序。我进行了一些研究,大多数人将http://localhost/或http://localhost/callback放回到Android应用程序,但它也不适用于我。什么是重定向网址?如何回到应用程序? 当然' xxx'仅举例来说;)
答案 0 :(得分:1)
使用$cordovaInAppBrowser
在应用内浏览器中打开网址后,您需要按照此处所述http://ngcordova.com/docs/plugins/inAppBrowser/收听活动$cordovaInAppBrowser:loadstart
。
所以你可以用以下方式来做,
$cordovaInAppBrowser.open('https://xxx/oauth/authorize?response_type=code&client_id=xxx&redirect_uri=http://192.168.0.129:8100/', '_blank' , options);
$rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event) {
// check event for which url loaded. if it loaded the http://192.168.0.129:8100/ with the access token, then handle it there and close the in app browser with, $cordovaInAppBrowser.close();
})