簡體   English   中英

科爾多瓦在應用程序瀏覽器事件未觸發IOS

[英]Cordova In App Browser event not firing IOS

嘗試通過外部服務在我的離子應用程序上對用戶進行身份驗證,我需要在應用程序瀏覽器中使用cordovas! 該代碼可在android上完美運行,但是在iOS上,“ loadstop”事件不會觸發,因此,瀏覽器也不會將自身重定向回應用程序。 我的代碼如下所示:

$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事件3次,並第三次觸發“ loadstop”事件,而regex將返回true並關閉應用程序內瀏覽器。

如果我需要提供更多代碼來幫助解決此問題,請告訴我!

科爾多瓦版本:4.2.0
離子性:1.4.5
iOS:8和9
使用NgCordova實現Cordova功能

更新:在模擬器上運行應用程序並檢查控制台日志時,我發現此錯誤:

錯誤:模塊cordova-plugin-inappbrowser.inappbrowser不存在。, http ://10.117.1.46:8100/cordova.js,行:1402

我已經安裝了插件,所以我不知道它怎么缺少插件。 有人對此有補救辦法嗎? 謝謝!

 iabRef = window.open('http://XYZ.php', '_blank', 'location=no,toolbar=no');
         iabRef.addEventListener('loadstart', iabLoadStart);
         iabRef.addEventListener('loadstop', iabLoadStop);
         iabRef.removeEventListener('loaderror', iabLoadError);
         iabRef.addEventListener('exit', iabClose);
         iabRef.addEventListener('loadstart', function(event) {

          if (event.url.match("mobile/close")) {
              iabRef.close();
              window.location = 'index.html';

          }
        }
                               );

問題是我的iOS平台不是最新的。

因此,當您使用cordova開發應用程序時,請確保您的平台版本和插件是最新的且已升級操作系統。

所以我要做的就是

刪除iOS平台。

科爾多瓦平台rm ios

添加iOS平台-最新版本

科爾多瓦平台添加ios

刪除插件cordova-plugin-inappbrowser

cordova插件刪除cordova-plugin-inappbrowser

添加插件cordova-plugin-inappbrowser-最新版本

cordova插件添加cordova-plugin-inappbrowser

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM