我在某个网站上按了一个课程从网络身份验证中获取令牌。
我按下一个按钮,在应用程序浏览器打开,我输入我的ID和密码,重定向,但我的浏览器没有关闭。我不明白为什么。
这是我的代码:
public apiMessages(): Promise<any>{
return new Promise(function(resolve, reject) {
var browserRef = window.cordova.InAppBrowser.open("https://test.api.test.fr/v1/oauth2/authorize?client_id=XXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX&response_type=token&redirect_uri=https://test.api.test.fr/redirect");
browserRef.addEventListener("loadstart", (event) => {
if ((event.url).indexOf("https://test.api.test.fr/redirect") === 0) {
browserRef.removeEventListener("exit", (event) => {});
browserRef.close();
var responseParameters = ((event.url).split("#")[1]).split("&");
var parsedResponse = {};
for (var i = 0; i < responseParameters.length; i++) {
parsedResponse[responseParameters[i].split("=")[0]] = responseParameters[i].split("=")[1];
}
if (parsedResponse["access_token"] !== undefined && parsedResponse["access_token"] !== null) {
resolve(parsedResponse);
} else {
reject("Problem authenticating ");
}
}
});
browserRef.addEventListener("exit", function(event) {
reject("The sign in flow was canceled");
});
});
}
我不知道为什么这个
if ((event.url).indexOf("https://test.api.test.fr/redirect") === 0)
不工作......
好的,这不是if的问题,而是browserRef.close()
函数close什么都不做