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很高兴帮助你,谢谢:) –