2012-04-24 2 views
3

я просто повышен PhoneGap 1.4.1 до 1.6.1, а также модернизировал ребенок браузер от https://github.com/libbybaldwin/phonegap-plugins/tree/master/Android/ChildBrowserCordova 1.6.1 андроид Uncaught TypeError: Невозможно вызвать метод «» showWebPage неопределенной

и я добавил эту строку в плагинах .xml файл

<plugin name="ChildBrowser" value="com.phonegap.plugins.ChildBrowser.ChildBrowser"/> 

но когда я вызов этой

window.plugins.childBrowser.showWebPage("http://google.com", { 
     showLocationBar: true 
    }); 

я адресность этой ошибки неперехваченного TypeError: Невозможно вызвать метод «showWebPage» от и ndefined

+0

Имеет эту же проблему в течение нескольких дней. Надеюсь, мы сможем найти решение. – sirmdawg

+0

работает на устройстве, например, в галактике Samsung или аналогичном устройстве, но не работает в HTC или GALAXY S II или Sony ericsson Experia – Mahfuz

+0

после обновления cordova 1.7.0 и обновленного кода childbrowser теперь работает – Mahfuz

ответ

0

Что касается 1.4.1 против 1.6.1:

Пожалуйста, обратите внимание, что мой GitHub репо из PhoneGap-плагинов, что я «заморозили» в интернет-времени, чтобы позволить дальнейшее использование PhoneGap 1.4.1 с плагинами с той эпохи.

Перемещение вперед в Кордову 1.6.1 + вам необходимо перейти на официальных неофициальных плагинов на

https://github.com/phonegap/phonegap-plugins

Примечание: Эти модули могут или не могут быть обновлены работы с Cordova 1.6.1 , Пожалуйста, прочтите их индивидуальные файлы README и ниже блог от PhoneGap инженера:

http://simonmacdonald.blogspot.com/2012/04/migrating-your-phonegap-plugins-to.html

Резюме: переход от версии 1.4.1 до 1.6.1 + и с помощью PhoneGap плагин потребуется некоторое настороженность, поскольку было много изменений внутри между эти две версии.

+0

Даже используя официальный неофициальный плагин, я получаю ту же ошибку. – sirmdawg

+0

его работая в устройстве, таком как samsung galaxy pop или подобное устройство, но не работает в HTC или GALAXY S II или Sony ericsson Experia – Mahfuz

0

Я был в состоянии решить эту ошибку, используя этот код:

try { 
var cb = new ChildBrowser(); 
console.log(cb); 
cb.showWebPage('http://www.google.com'); 
}catch (err){ 
console.log(err); 
} 

Хотя это вызвало еще одну ошибку:

PhoneGap Build + Cordova + ChildBrowser Error

Если вы не получаете никаких ошибок и это решение работает - пожалуйста, дай мне знать!

+0

Я получаю эту ошибку TypeError: Объект # не имеет метода 'exec' – Mahfuz

+0

Некоторые со мной: \ Вы используете компоновку или затмение? – sirmdawg

0

В течение нескольких дней мы сталкивались с этой же ошибкой и обнаружили, что вы не можете вызвать childBrowser прямо из вашего index.html, вероятно, потому что для инициализации плагина childBrowser требуется некоторое время для завершения.

Это решение работает:

setTimeout(function() { 
    window.console.log('Opening Childbrowser...'); 
    window.plugins.childBrowser.showWebPage("http://www.google.com", { showLocationBar: true }); 
}, 3500); 

Другими словами: вы должны ждать, пока объект childBrowser станет доступным, есть более элегантные решения мыслимые конечно.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: протестирован с текущим выпуском 1.7.0rc1 Cordaova, не уверен, что это работает и для 1.6.1.

+0

Еще лучше, убедитесь, что среда Cordova была инициализирована ожиданием события 'deviceready', как задокументировано: ' document.addEventListener («deviceready», myInitFunc, false); ' – jlapoutre

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