2

ビルドには PhoneGap および PhoneGap Build 内で iframe を使用しています。iframe 内のカメラ機能などの PhoneGap 機能にアクセスすることは可能ですか?

ありがとう!

4

2 に答える 2

2

はい、可能です。

あなたの問題は、メイン ウィンドウと iframe ウィンドウの間の競合によって引き起こされます。

このリンクを参照してください: https://github.com/phonegap/phonegap/wiki/iFrame-Usage

私はcordova plugin contact androidを使用してこれを正常に実装しました。

それを可能にするには、次のことを行う必要があります。

  1. postMessageを使用して、親ウィンドウと子/iframe 間の通信を作成します。親と子はお互いに耳を傾けます。
  2. 子/iframe から親にメッセージを送信/トリガーして、cordova プラグインを呼び出します。
  3. 親ウィンドウから cordova プラグインを呼び出します。
  4. コルドバ コード/サイド(Android の Java)から呼び出される親ウィンドウでグローバル関数を作成します。
  5. Cordova で Java ファイルを見つけます (コールバック関数を呼び出して結果を解析します)。手がかり: callbackContext.success(パラメーター); . ここから、親ウィンドウで作成されたグローバル関数を呼び出す必要があります。
  6. 親ウィンドウで作成したグローバル関数を、cordova の java ファイルから呼び出します。以下は、Java コードから js コードを呼び出すスニペットです。

your_web_view .loadUrl("javascript: function_name ( parameter_result_from_cordova )");

  1. postMessage を使用して、親で取得したメッセージを iframe/child に送り返します。

これはうまくいくはずです。問題が見つかったらお知らせください。

于 2014-12-29T00:21:22.787 に答える
1
  • 歴史は思うように動かない。history.back() と history.forward() は機能せず、機能させるには (履歴状態で) ハックする必要があります (ちょっと)。usePolling プロパティを true に設定することで回避できました。

  • すべてのメイン ウィンドウと iframe ウィンドウの間の競合 (URL、イベントなど)

  • iframe コンテンツでテキストを選択する機能に関して問題がありました。Anis が解決策/回避策を見つけたと思います。

  • XmlHttpRequests を使用してドキュメント データを設定できません (CSS/js などでめちゃくちゃになります)。

続きを読む: https://github.com/phonegap/phonegap/wiki/iFrame-Usage

于 2013-08-18T11:50:00.903 に答える