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 を呼び出す childbrowser に関連していると私は信じていcordovaます。

オブジェクトを見るとcordvoa、どこにも関数が表示されませんexec...

何か案は?

4

7 に答える 7

1

私の知る限り、ChildBrowser はまだ cordova と完全に互換性がありません。

いずれにせよ、ChildBrowser プラグインとの通信を試みる前に、cordova が初期化を完了していないようです。

weinre などを接続して、cordova が完全に初期化された後、子ブラウザーを手動で開くことができることをテストしてみてください。このコードがスクリプトのロード順で cordova の後にあることを確認してください。また、すべての最新バージョンを使用していることを確認してください。

于 2012-05-05T03:00:25.520 に答える
1

これはiOSまたはAndroid用ですか?このコードは両方で機能します。var cb = new ChildBrowser() を使用すると、エラーが発生する可能性があることがわかりました。ChildBrowser の呼び出し方法を整理する必要があると思いますが、今はそうする時間がありません。この方法は機能します。約束:) ps - iOS でこれを行っている場合は、この動作の例があります。

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

デスクトップブラウザ用のチャイルドブラウザプラグインは使用できません。デバイスまたはシミュレーターでのみ機能するため、このエラーが発生します。

于 2012-12-20T09:23:42.177 に答える
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

遅延読み込みとも呼ばれる非同期 Java スクリプト読み込みを使用すると、このエラーが発生する可能性があります。

私の場合; メインのhtmlドキュメントでiframeを使用していました。IFrame では、すべてのアドバタイズ スクリプトを非同期で読み込んで実行します。その後、Uncaught TypeError: Object # has no method 'exec' が発生し始めました。

方法と理由はわかりませんが、このタイプの使用法は 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 に答える