cordova 1.6.1 android Uncaught TypeError:无法调用undefined的方法'showWebPage'

时间:2012-04-24 09:53:33

标签: android cordova phonegap-plugins

我刚刚将phonegap 1.4.1升级到1.6.1,并且还从https://github.com/libbybaldwin/phonegap-plugins/tree/master/Android/ChildBrowser升级了儿童浏览器

我在plugins.xml文件中添加了这一行

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

但是当我打电话给你时

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

我发现此错误未捕获TypeError:无法调用未定义的方法'showWebPage'

3 个答案:

答案 0 :(得分:0)

关于1.4.1对1.6.1:

请注意,我的github repo of phonegap-plugins是我在网络时间“冻结”的,以允许继续使用那个时代的插件的phonegap 1.4.1。

继续前往cordova 1.6.1+,你需要继续使用官方的非官方插件

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

注意:这些插件可能会或可能不会更新与cordova 1.6.1一起使用。请从电话沟工程师那里阅读他们的个人自述文件和博客:

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

总结:从1.4.1移动到1.6.1+并使用phonegap插件需要提高警惕,因为这两个版本之间内部有很多变化。

答案 1 :(得分: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

如果您没有收到任何错误,此解决方案有效 - 请告诉我们!

答案 2 :(得分:0)

现在已经对这个相同的错误进行了几天的斗争,发现你无法立即从index.html调用childBrowser,可能是因为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。