Cordova InAppBrowser EventListeners 未在 ios 上工作
Cordova InAppBrowser EventListeners not working on ios
当 运行 在 iphone 7 设备或模拟器上时,inappbrowser 成功打开,但永远不会调用事件监听器。下面的代码在 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() called but it was already closed" 的错误。我也试过 window.open() 但没有成功。
编辑 2:单击此按钮时调用重定向功能
<a href="#" onClick="redirect();">Online Payments</a>
好的,所以在尝试了几件事之后,这对我有用。我测试了在不同目标上触发所有四种可能的 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”上。
虽然我已经解决了这个问题,但如果有人可以提供一些关于为什么会发生这种情况的见解,我很乐意提供有关我的 code/build 的更多详细信息。
当 运行 在 iphone 7 设备或模拟器上时,inappbrowser 成功打开,但永远不会调用事件监听器。下面的代码在 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() called but it was already closed" 的错误。我也试过 window.open() 但没有成功。
编辑 2:单击此按钮时调用重定向功能
<a href="#" onClick="redirect();">Online Payments</a>
好的,所以在尝试了几件事之后,这对我有用。我测试了在不同目标上触发所有四种可能的 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”上。
虽然我已经解决了这个问题,但如果有人可以提供一些关于为什么会发生这种情况的见解,我很乐意提供有关我的 code/build 的更多详细信息。