1

Я работаю на мобильных приложений с помощью:InAppBrowser События обработки вопрос

  • Ионные 2.1.4
  • Кордова 6.4.0
  • Угловое 1.5.3

Я один вид с внешним URL-адресом, используя плагин 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 Рад помочь вам, спасибо :) –