InAppBrowser executeScript回调根本没有触发

我正在创建使用Ionic和ngCordova构建混合应用程序.在应用程序登录工作流程中,我将页面从服务器返回到InAppBrowser插件.我需要从我的Ionic应用程序中返回的页面中读取一些值.

通常的方法是在’loadstop’事件上调用executeScript,并在该脚本返回某些内容时设置回调.我可以在以下代码中看到这种设置.但是,无论我尝试什么,iOS模拟器,Android模拟器的回调都没有解雇.

这是在InAppBrowser中打开Goog​​le网站的页面.

 $cordovaInAppBrowser.open('http://google.com', '_blank', options)
    .then(function (event) {
      //alert('succed')
    })
    .catch(function (event) {
      //alert('errored')
    });

以下是loadstop事件处理程序. 1 1脚本被正确注入,因为我确实看到了2的警报.但是根本没有调用回调函数!

 $rootScope.$on('$cordovaInAppBrowser:loadstop', function (e, event) {
      $cordovaInAppBrowser.executeScript(
        {
          code: "alert(1+1);"
        },
        function (values) {
          alert('add completed');
        });
});

我尝试了多个模拟器,但它们都没有工作.提前感谢您的帮助.

最佳答案 问题是executeScript本身就是一个promise,所以要使你的代码工作,你必须写这样的东西:

$rootScope.$on('$cordovaInAppBrowser:loadstop', function (e, event) {
  $cordovaInAppBrowser.executeScript(
    {
      code: "alert(1+1);"
    }).then(
        function (values) {
             alert('add completed');
        });
    });
点赞