我在使用这 2 个 PhoneGap 插件时遇到了问题:“BarcodeScanner”和“ChildBrowser”(在 iOS 应用程序中,使用 XCode 4 和 PhoneGap 2.0)。
我的应用程序 UI 上有一个“扫描”按钮。当用户点击此按钮时,条码扫描器将启动。
因此,在条形码扫描器回调的 Success 函数中,我需要在新的 Childbrowser 窗口(应用程序内部)中打开从扫描中恢复的 URL。
但是新的 Childbrowser 窗口从未打开过,而控制台显示“Opening Url : http://fr.wikipedia.org/ ”(例如)。
这是我的JS部分代码:
$("#btnStartScan").click(function() {
var scanBarcode = window.plugins.barcodeScanner.scan(
function(result) {
if (!result.cancelled){
openUrl(result.text);
}
},
function(error) {
navigator.notification.alert("scanning failed: " + error);
});
});
function openUrl(url)
{
try {
var root = this;
var cb = window.plugins.childBrowser;
if(cb != null) {
cb.showWebPage(url);
}
else{
alert("childbrowser is null");
}
}
catch (err) {
alert(err);
}
}
如果我在 Confirm 警报回调中调用我的 openURL() 函数,一切都会正常工作,例如:
if (!result.cancelled){
navigator.notification.confirm("Confirm?",
function (b) {
if (b === 1) {
openUrl(result.text);
}
},
'Test',
'Yes, No');
}
但是我需要在扫描后直接启动 ChildBrowser 窗口,而不需要任何确认警报等。
请问有人知道如何解决这个问题吗?