2012-08-27 65 views
0

我在使用這個PhoneGap插件時遇到了一個問題:「BarcodeScanner」&「ChildBrowser」(在iOS應用程序中,使用XCode 4 & PhoneGap 2.0)。Phonegap:BarcodeScanner&Childbrowser插件

我在我的應用UI上有一個「掃描」按鈕。當用戶點擊此按鈕時,條形碼掃描器將啓動。

因此,在條形碼掃描器回調的成功功能中,我需要在新的子瀏覽器窗口(內部應用程序)中從掃描中打開恢復的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); 
     } 
} 

如果我打電話給我的OpenURL()函數,例如確認警報回調裏面,這樣一切工作正常:

if (!result.cancelled){ 
     navigator.notification.confirm("Confirm?", 
             function (b) { 
               if (b === 1) { 
                openUrl(result.text); 
               } 
             }, 
             'Test', 
             'Yes, No'); 
} 

但我需要在掃描後直接啓動ChildBrowser窗口,無需任何確認警報等。

有誰知道如何解決此問題嗎?

回答

2

我也有這個相同的問題。

通過設置超時時間解決它。

var scanBarcode = window.plugins.barcodeScanner.scan(
         function(result) { 
           if (!result.cancelled){ 
            setTimeout(function(){ openUrl(result.text); },500); 
           } 
         }, 
         function(error) { 
           navigator.notification.alert("scanning failed: " + error); 
    }); 
1

我遇到了完全相同的問題。

我的應用程序還有另一種機制來顯示除條形碼閱讀器以外的網頁,當我執行該操作時,可以看到條形碼相關頁面已加載,但從未顯示過。

在ChildBrowserViewController.m,我看的loadURL()最後一行是webView.hidden = NO;和我在想,孩子瀏覽器設置可見我們的條形碼,但一些有關的條碼閱讀器窗口造成孩子瀏覽器來獲得後設置爲錯誤的z順序,但我不熟悉sdk知道如何測試或試圖將其帶到前面。

希望這有助於鎖定潛在區域。

相關問題