InAppBrowser 事件处理问题

InAppBrowser Events handling issue

我正在开发移动应用,使用的是:

我有一个外部视图 url 使用 InAppBrowser 插件,我在这个网站上有一个 link 应该重定向到我的应用程序中的特定视图

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




}

])

您必须 运行 手动摘要循环,因为您正在更改 location 来自 angular 上下文之外的异步事件的路径。

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

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