試圖通過外部服務驗證我的離子應用程序上的用戶,我需要使用cordovas在應用程序瀏覽器!該代碼在Android上完美工作,但是在iOS上,「loadstop」事件永遠不會觸發,因此瀏覽器不會將其自身重定向迴應用程序。代碼我看起來像這樣:科爾多瓦在應用程序瀏覽器事件不發射IOS
$rootScope.$on('$cordovaInAppBrowser:loadstop', function (e, event) {
console.log('inappbrowser loaded', event);
var regex = /* regex to determine if url is correct redirected url */
var res = regex.test(event.url);
alert('loaded: ' + event.url);
alert('regex result: ' + res);
if(res === true) {
$cordovaInAppBrowser.close();
}
});
if(okta) {
if (typeof window.localStorage.msRefreshToken === 'undefined') {
document.addEventListener('deviceready', function() {
$cordovaInAppBrowser.open('urlforExternalservicehere', '_blank', options);
}, false);
} else {
TokenStore.refreshAccessToken();
}
}
當代碼運行時,屏幕上不顯示任何提示。另外,一旦應用程序已經到達外部服務並且用戶的用戶名被輸入,它就會被重定向到另一個URL,然後用戶將使用另一組憑據進行身份驗證。這又會返回應用程序的令牌來驗證使用情況。因此,在一個完美的iOS世界裏,它與當前的android體驗相匹配,loadstop事件觸發三次,第三次「loadstop」事件觸發,正則表達式返回true並關閉應用程序中的大括號。
如果我需要提供更多的代碼來幫助解決這個問題,請讓我知道!
Cordova Version: 4.2.0
Ionic: 1.4.5
iOS: 8 and 9
Using NgCordova for Cordova functionality
UPDATE:運行在模擬器上的應用程序和檢查控制檯日誌的時候,我發現這個錯誤:
Error: Module cordova-plugin-inappbrowser.inappbrowser does not exist., http://10.117.1.46:8100/cordova.js , Line: 1402
我已經安裝了插件,所以我不知道它是如何丟失的插件。有沒有人有這方面的補救措施?謝謝!
不幸工作。還是)感謝你的建議! – MattA
@MattA你能找到解決這個問題的方法。我面對同樣的情況 –