Cordova InAppBrowser EventListeners不在ios上工作

时间:2017-02-04 14:01:12

标签: javascript ios cordova cordova-plugins inappbrowser

在iphone 7设备或模拟器上运行时,inappbrowser会成功打开,但永远不会调用eventlisteners。下面的代码在android上工作正常。 我正在使用cordova 6.5.0,而inappbrowser插件是1.6.1版本。我目前正在研究mac osx 10.12.2。

function redirect () {
  if (isloggedin){
    navigator.notification.alert("You are already logged in");
  } else {
    var url = "https://connect.stripe.com/oauth/authorize?response_type=code&client_id=CLIENT_ID&scope=read_write";
    var target = "_system";
    var options = "location=yes, hidden=no, clearcache=yes";
    browserRef.addEventListener('loadstart', function(event) {
      if ((event.url).indexOf("https://example.com") !== -1) {
        var redirectedURI = event.url;
        registerUser(redirectedURI);
        browserRef.close();
      }
    });
  }
}

以下是info about browserRef.导航通知的图片 我非常乐意提供更多信息,例如我的config.xml。 非常感谢任何帮助,谢谢。

编辑:每当我尝试在我的重定向函数结束时添加browserRef.close()时,我从xcode“IAB.close()调用时收到错误,但它已被关闭”。我也试过window.open()但没有成功。

编辑2:点击此按钮调用重定向功能

<a href="#" onClick="redirect();">Online Payments</a>

2 个答案:

答案 0 :(得分:2)

好的,所以在尝试了几件事后,这对我有用。我测试了在不同目标上发射所有四个可能的inappbrowser事件。这些事件将被击退的唯一目标是&#34; _blank&#34;。

browserRef.addEventListener('loadstart', function(event) { navigator.notification.alert(event, event.url); });
browserRef.addEventListener('loadstop', function(event) { navigator.notification.alert(event); });
browserRef.addEventListener('loaderror', function(event) { navigator.notification.alert(event, event.code, event.message); });
browserRef.addEventListener('exit', function(event) { navigator.notification.alert("exit"); });

我注意到的其他事情:出于某种原因&#34; loadstart&#34;只会在&#34; _self&#34;。

上运行

虽然我已经解决了这个问题,但是如果有人能够提供一些有关这种情况的见解,我很乐意提供有关我的代码/构建的更多详细信息。

答案 1 :(得分:0)

问题是我的iOS平台不是最新的。

因此,当您使用cordova开发应用程序时,请确保您的平台版本和插件是最新的,并且已升级操作系统。

所以我要做的就是

删除iOS平台。

cordova平台rm ios

添加iOS平台-最新版本

cordova平台添加ios

删除插件cordova-plugin-inappbrowser

cordova插件删除cordova-plugin-inappbrowser

添加插件cordova-plugin-inappbrowser-最新版本

cordova插件添加cordova-plugin-inappbrowser

https://guntucomputerhacks.blogspot.com/2019/07/cordova-inappbrowser-eventlisteners-not.html