2017-02-04 160 views
3

当在iPhone 7设备或模拟器上运行时,inappbrowser会成功打开,但事件监听器不会被调用。下面的代码在Android上正常工作。 我正在使用cordova 6.5.0,inappbrowser插件是1.6.1版本。我目前正在使用mac osx 10.12.2。Cordova InAppBrowser EventListeners无法在ios上工作

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> 

回答

1

好了的点击,所以想几件事情后,这是为我工作。我测试了针对不同目标的所有四种可能的inappbrowser事件。这些事件发回的唯一目标是“_blank”。

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"); }); 

我注意到的其他事情:由于某种原因,“loadstart”只会在“_self”上运行。

虽然我已经解决这个问题的工作,如果有人可以提供一些洞察为什么出现这种情况,我会很高兴提供有关我的代码/建造一些更多的细节。

+0

我有同样的问题,发现了同样的问题,关于这个主题的进展? – Orion390

+0

@ Orion390不是真的,对不起。希望你弄明白。 – phil

+0

导致去的,而不是使用inAppBrowser上的另一形式给出,我把网站的iframe里面科尔多瓦,同时显示的网站(但给予了很多其他的东西照顾,像X-框架,选项的一切,工作方式你网站),希望它可以帮助某人。 – Orion390

相关问题