嗨,我正在使用Cordova InAppBrowser和AngularJS Oauth插件。Cordova InAppBrowser顯示位置酒吧Cordova AngularJS Oauth
當我按下一個正常的鏈接按鈕是這樣的:
<a class="external" ng-href="https://www.website.com/" targe="_blank" >open link</a>
結合本文:
<script>
$(document).ready(function() {
// open links in native browser (phonegap);
$(document).on('click', '.external', function (event) {
event.preventDefault();
window.open($(this).attr('href'), '_blank');
return false;
});
});
</script>
,它打開了在應用程序瀏覽器鏈接。在InAppBrowser加載url時,它顯示底部的url位置。所以這是行得通的。
當AngularJS Oauth插件打開InAppBrowser並開始加載Facebook的登錄頁面時,它不會在底部顯示加載url位置。
我試圖在OAuth插件這樣添加"location=yes"
,但它仍然沒有顯示在底部的URL加載條:
window.open('https://www.website.com/oauth/authorize?client_id=' + clientId + '&redirect_uri=http://localhost/callback&scope=' + appScope.join(",") + '&response_type=code&approval_prompt=force', '_blank', 'location=yes,clearsessioncache=yes,clearcache=yes');
我如何可以強制顯示的承重橫條通過OAuth InAppBrowser? 我想要這個的原因是當登錄頁面需要一些時間來加載沒有加載指示,你介意認爲沒有什麼事情發生。
這是基於OAuth的認證功能的模樣與位置= YES:
strava: function(clientId, clientSecret, appScope) {
var deferred = $q.defer();
if(window.cordova) {
var cordovaMetadata = cordova.require("cordova/plugin_list").metadata;
if(cordovaMetadata.hasOwnProperty("cordova-plugin-inappbrowser") === true || cordovaMetadata.hasOwnProperty("org.apache.cordova.inappbrowser") === true) {
var browserRef = window.open('https://www.strava.com/oauth/authorize?client_id=' + clientId + '&redirect_uri=http://localhost/callback&scope=' + appScope.join(",") + '&response_type=code&approval_prompt=force', '_blank', 'location=yes,clearsessioncache=yes,clearcache=yes');
browserRef.addEventListener('loadstart', function(event) {
if((event.url).indexOf("http://localhost") === 0) {
requestToken = (event.url).split("code=")[1];
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
$http({method: "post", url: "https://www.strava.com/oauth/token", data: "client_id=" + clientId + "&client_secret=" + clientSecret + "&code=" + requestToken })
.success(function(data) {
deferred.resolve(data);
})
.error(function(data, status) {
deferred.reject("Problem authenticating");
})
.finally(function() {
setTimeout(function() {
browserRef.close();
}, 10);
});
}
});
browserRef.addEventListener('exit', function(event) {
deferred.reject("The sign in flow was canceled");
});
} else {
deferred.reject("Could not find InAppBrowser plugin");
}
} else {
deferred.reject("Cannot authenticate via a web browser");
}
return deferred.promise;
},
你可以鏈接你正在使用的AngularJS Oauth嗎? – jcesarmobile
我使用https://github.com/nraboy/ng-cordova-oauth – user1242574
在https://github.com/nraboy/ng-cordova-oauth/blob/master/src/oauth.js那裏有很多window.open與位置=否,你確定你改變了是你想要的嗎?還是你改變了所有這些? – jcesarmobile