这是我的代码:
<script src="include/cordova.js" type="text/javascript"></script>
<script src="include/sencha-touch-all.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8" src="include/childbrowser.js"></script>
<link href="include/sencha-touch.css" rel="stylesheet" type="text/css" />
var childBrowser = null;
if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)) {
document.addEventListener("deviceready", onDeviceReady, false);
} else {
onDeviceReady();
}
function onDeviceReady(){
console.log("PhoneGap is Ready");
childBrowser = ChildBrowser.install();
}
function openChildBrowser(url)
{
try {
//both of these should work...
var cb = new ChildBrowser();
console.log(cb);
cb.showWebPage('http://www.google.com');
}
catch (err)
{
alert(err);
console.log(err);
}
}
...
还有一些不相关的代码但是当我调用openChildBrowser()
时,我收到以下错误:
Uncaught TypeError: Object #<Object> has no method 'exec'
我认为这是指在cordova
对象上调用exec的childbrowser。
当我查看cordvoa
对象时,我在任何地方都看不到exec
函数...
有什么想法吗?
答案 0 :(得分:1)
这适用于iOS还是Android? 此代码适用于两者。我发现在使用var cb = new ChildBrowser()时可能会出现错误。我认为清理ChildBrowser的方式是有序的,但我现在没有时间这样做。这种方法可行。承诺:) ps - 如果你在iOS上这样做,就有一个这样的例子。
ChildBrowser.install();
window.plugins.childBrowser.showWebPage('http://www.google.com');
答案 1 :(得分:1)
据我所知,ChildBrowser尚未与cordova完全兼容。
在任何情况下,在您尝试与ChildBrowser插件进行通信之前,听起来似乎没有完成初始化。
尝试连接weinre或其他内容并测试可以在完全初始化cordova后手动打开子浏览器。确保此代码在脚本加载顺序中的cordova之后。还要确保您使用的是最新版本的所有版本。
答案 2 :(得分:0)
如果您使用async java脚本加载a.k.a延迟加载,则可能会收到此错误。
在我的情况下;我在主html文档中使用iframe。在IFrame中,我加载并运行所有广告脚本异步。之后,我开始得到Uncaught TypeError:Object#没有方法'exec'。
我不知道如何&amp;为什么,但我想这种用法会导致网络工具包被误解。
PS:使用sencha或不使用,发生此错误。所以它与sencha-touch-all无关。
答案 3 :(得分:0)
我一直在使用iOS上的ChildBrowser和Phonegap。我注意到在deviceready事件之后“安装”时,只能使ChildBrowser正常工作。仅当您的html有效且完整时才会触发此事件。
我发现,如果你提到一个实际上并不存在的图像,那么文件名或图像的拼写就不存在了,因为设计人员还没有给出它(我的情景),设备就不会发射。因此插件无法正确安装。
在onload事件中注册deviceready事件是一种可行的方法,只要你的html很好并且没有遗漏任何东西。
希望这有助于其他人。
答案 4 :(得分:0)
将phonegap / cordova更新为1.7.0并从github获取childbrowser最新代码。 它应该工作正常。
答案 5 :(得分:0)
我最终重新开始使用Eclipse和Phonegap SDK。能够在不使用构建服务的情况下以此方式工作。
这可能对某些人有所帮助:
http://phonegap.com/start#android
https://github.com/phonegap/phonegap-plugins/tree/master/Android/ChildBrowser
答案 6 :(得分:0)
您不能将childbrowser插件用于桌面浏览器。它仅适用于设备或模拟器,因此您收到此错误。