InAppBrowser事件处理问题

时间:2017-02-10 17:40:01

标签: angularjs cordova ionic-framework phonegap-plugins inappbrowser

我正在使用移动应用程序:

  • Ionic 2.1.4
  • Cordova 6.4.0
  • Angular 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 个答案:

答案 0 :(得分:1)

当您从异步事件更改location路径时,您必须手动运行摘要周期。

将代码包装在$timeout函数中,这将启动摘要周期。显然,这将有助于更新位置。

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