0

私はアンドロイド用のアプリを書いています。Webview があり、アプリのボタンをクリックした後、Web サイトのフォーカスされた TextArea に Text を配置したいと考えています。Googleで解決策が見つかりませんでした。

テキストを入力することが重要です。ログイン ビューではなく、データが POST メソッドによって送信される場合、ユーザーは入力を確認できる必要があります。

あなたが私を助けてくれることを願っています。

ありがとう!

4

1 に答える 1

0

public void addJavascriptInterface (オブジェクト オブジェクト、文字列名) API レベル 1 で追加 提供された Java オブジェクトをこの WebView に挿入します。指定された名前を使用して、オブジェクトがメイン フレームの JavaScript コンテキストに挿入されます。これにより、JavaScript から Java オブジェクトのメソッドにアクセスできるようになります。API レベル JELLY_BEAN_MR1 以上を対象とするアプリケーションの場合、JavaScript からアクセスできるのは、JavascriptInterface でアノテーションが付けられたパブリック メソッドのみです。API レベル JELLY_BEAN 以下を対象とするアプリケーションの場合、すべてのパブリック メソッド (継承されたものを含む) にアクセスできます。影響については、以下の重要なセキュリティ ノートを参照してください。挿入されたオブジェクトは、ページが次に (再) ロードされるまで JavaScript に表示されないことに注意してください。例えば:

class JsObject {
@JavascriptInterface
public String toString() { return "injectedObject"; }
}
webView.addJavascriptInterface(new JsObject(), "injectedObject");
webView.loadData("", "text/html", null);
webView.loadUrl("javascript:alert(injectedObject.toString())");

重要:

このメソッドを使用して、JavaScript がホスト アプリケーションを制御できるようにすることができます。これは強力な機能ですが、API レベル JELLY_BEAN 以下を対象とするアプリケーションにはセキュリティ リスクもあります。これは、JavaScript がリフレクションを使用して、挿入されたオブジェクトのパブリック フィールドにアクセスする可能性があるためです。信頼できないコンテンツを含む WebView でこのメソッドを使用すると、攻撃者が意図しない方法でホスト アプリケーションを操作し、ホスト アプリケーションの権限で Java コードを実行する可能性があります。信頼できないコンテンツを含む可能性のある WebView でこのメソッドを使用する場合は、細心の注意を払ってください。JavaScript は、この WebView のプライベートなバックグラウンド スレッドで Java オブジェクトと対話します。したがって、スレッドの安全性を維持するには注意が必要です。Java オブジェクトのフィールドにアクセスできません。パラメータ object この WebView に挿入する Java オブジェクト ■ JavaScript コンテキスト。Null 値は無視されます。name JavaScript でオブジェクトを公開するために使用される名前

電話を使用しています。フォーマットして申し訳ありません。これは、公式ページ android からの引用です。あなたのページが次の場合:

  1. テキストなどの入力の ID を設定します (例: <input id="text" ...)
  2. ドキュメントの末尾に次のコードを追加します。

    <script>function a(b){document.getElementById("text (ここにあなたの ID)").value=b;};function b(a){document.getElementById("text (ここにあなたの ID)") .value+=a;}</script>

  3. テキストを変更するには、次のコードを使用します。

    文字列 str="任意の文字列"; webview.loadUrl("javascript:a(\""+str+"\")");

  4. 最後にテキストを追加するには:

    文字列 str="任意の文字列"; webview.loadUrl("javascript:b(\""+str+"\")");

于 2013-04-29T16:39:56.263 に答える