0

这是我的代码:

<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' 我相信这是指在对象上调用 exec 的子浏览器cordova

当我查看cordvoa对象时,我在任何地方都看不到exec功能......

有任何想法吗?

4

7 回答 7

1

这是iOS版还是安卓版?此代码适用于两者。我发现使用 var cb = new ChildBrowser() 时可能会出现错误。我认为清理 ChildBrowser 的调用方式是有序的,但我现在没有时间这样做。这种方法会奏效。Promise :) ps - 如果你是为 iOS 做这个,这里有一个例子。

ChildBrowser.install();
window.plugins.childBrowser.showWebPage('http://www.google.com');
于 2012-05-01T21:12:20.997 回答
1

据我所知,ChildBrowser 尚未与cordova 完全兼容。

在任何情况下,在您尝试与 ChildBrowser 插件进行通信之前,听起来cordova 都没有完成初始化。

尝试连接 weinre 或其他东西并测试您可以在cordova完全初始化后手动打开子浏览器。确保此代码在脚本加载顺序中位于 cordova 之后。还要确保您使用的是所有内容的最新版本。

于 2012-05-05T03:00:25.520 回答
0

如果您使用异步 java 脚本加载又名延迟加载,您可能会收到此错误。

就我而言;我在主 html 文档中使用 iframe。在 IFrame 中,我异步加载并运行所有广告脚本。在那之后,我开始得到 Uncaught TypeError: Object # has no method 'exec'。

我不知道 HOW & WHY 但我猜这种用法会导致 web-kit 被误解。

PS:使用煎茶或不使用,出现此错误。所以它与 sencha-touch-all 无关。

于 2012-04-26T00:03:01.650 回答
0

我一直在 iOS 上的 ChildBrowser 和 Phonegap 上苦苦挣扎。我注意到只有在 deviceready 事件之后“安装”时才能让 ChildBrowser 正常工作。仅当您的 html 有效且完整时才会触发此事件。

我发现,如果您引用实际不存在的图像,则文件名或图像的拼写错误只是不存在,因为设计人员尚未给出它(我的场景),因此设备准备就绪不会触发。结果插件将无法(正确)安装。

在 onload 事件中注册 deviceready 事件是可行的方法,只要您的 html 是好的并且没有遗漏任何东西就可以工作。

希望这对其他人有所帮助。

于 2012-05-07T14:24:43.720 回答
0

将您的 phonegap / cordova 更新到 1.7.0 并从 github 获取 childbrowser 最新代码。它应该可以正常工作。

于 2012-05-09T07:40:32.883 回答
0

我最终重新开始并使用 Eclipse 和 Phonegap SDK。能够在不使用构建服务的情况下以这种方式工作。

这可能会帮助一些人:

http://phonegap.com/start#android

https://github.com/phonegap/phonegap-plugins/tree/master/Android/ChildBrowser

于 2012-05-12T17:37:14.290 回答
0

您不能将 childbrowser 插件用于桌面浏览器。它仅适用于设备或模拟器,因此您会收到此错误。

于 2012-12-20T09:23:42.177 回答