1

我使用的移動應用程序的工作:InAppBrowser事件處理問題

  • 離子2.1.4
  • 科爾多瓦6.4.0
  • 角1.5.3

我有一個觀點與外部網址使用InAppBrowser插件,我在這個網站的鏈接應該重定向到我的應用程序中的某個視圖

這個問題是$location.url()不重定向和根本不工作,但是當我測試事件時,我發現它正常觸發。

這裏是我的全部代碼

angular.module('yogipass').controller('iframe',function ($location) { 
document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    console.log('here'); 

    var ref=cordova.InAppBrowser.open('http://192.168.42.218/index.html', '_blank', 'location=no'); 

    ref.addEventListener('loadstart', function(event) { 
    if (event.url.match("mobile/login")) { 
    console.log('worked!') // this logged normally 
    $location.url('/login'); 

     ref.close(); 
    } 
    }); 




} 

]) 

回答

1

您必須手動運行消化週期爲你改變從它超出角範圍內的異步事件location路徑。

將您的代碼包裝在$timeout函數中,這將啓動摘要循環。顯然這將有助於更新位置。

$timeout(function(){ 
    $location.url('/login'); 
}) 
+1

非常感謝你,你救了我的一天! –

+1

@PeterWilson很高興幫助你,謝謝:) –