Angularjs InAppBrowser事件处理问题

Angularjs InAppBrowser事件处理问题,angularjs,cordova,ionic-framework,phonegap-plugins,inappbrowser,Angularjs,Cordova,Ionic Framework,Phonegap Plugins,Inappbrowser,我正在使用以下工具开发移动应用程序: 离子2.1.4 科尔多瓦6.4.0 角度1.5.3 我有一个使用插件的外部url视图,我在这个网站上有一个链接,应该重定向到我应用程序中的某个视图 这个问题是$location.url()没有重定向,根本不工作,但是当我测试事件时,我发现它触发正常 这是我的全部代码 angular.module('yogipass').controller('iframe',function ($location) { document.addEventListene

我正在使用以下工具开发移动应用程序:

  • 离子2.1.4
  • 科尔多瓦6.4.0
  • 角度1.5.3
我有一个使用插件的外部url视图,我在这个网站上有一个链接,应该重定向到我应用程序中的某个视图

这个问题是
$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();
   }
  });




}

])

在更改异步事件的
位置
路径时,必须手动运行摘要循环,该异步事件不在角度上下文中

请使用
$timeout
函数包装您的代码,该函数将启动摘要循环。显然,这将有助于更新位置

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

非常感谢你,你救了我一天@彼得·威尔森很高兴能帮助你,谢谢:)