2012-08-27 2 views
0

У меня возникла проблема с использованием этих 2 плагинов PhoneGap: «BarcodeScanner» & «ChildBrowser» (внутри приложения iOS, с XCode 4 & PhoneGap 2.0).Phonegap: плагины BarcodeScanner & Childbrowser

У меня есть кнопка «Сканировать» в пользовательском интерфейсе приложения. Когда пользователь нажимает эту кнопку, запускается сканер штрих-кода.

Итак, в функции Успешности обратного вызова сканера штрих-кода мне нужно открыть восстановленный URL-адрес из сканирования в новом окне Childbrowser (внутри приложения).

Но новое окно Childbrowser никогда не было открыто, а на консоли отображается «Начальный адрес: 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, чтобы узнать, как его проверить или попытаться перенести на передний план.

Надеюсь, что это поможет цели потенциальной области.

Смежные вопросы