4

アクティビティがサーバーと通信し、未払いの金額の詳細を取得するアプリケーションがあります。ユーザーに支払いゲートウェイを使用して未払いの金額を支払ってもらいたい。支払いゲートウェイの場合、webview から web ページを呼び出し、未払いの金額の詳細とその他の資格情報をアクティビティから webview に読み込まれたページに転送する必要があります。トランザクションの最後に、webview の web ページからアクティビティにいくつかのパラメーターを戻す必要があります。

これは、アクティビティと webview にロードされたページの間で達成したい双方向通信です。私はそれを行う方法を見つけようとしましたが、そのような交換を行う簡単な例を見つけることができませんでした.

4

2 に答える 2

7

hereに示されているように、javascript WebAppInterface を使用して目的を達成できます。

主な概念は、WebView を保持するアクティビティ内に JavaScript インターフェイスを作成することです。

private class WebPayInterface {
    int amount;
    boolean success;

    @JavascriptInterface
    public void PaymentFinished(int amount, boolean success) {
        this.amount = amount;
        this.success = success;

        // do whatever you want in the parent activity.
    }
}

インターフェイスを webView に追加する

webView.addJavascriptInterface(new WebPayInterface(), "WebPayInterface");

最後に、JavaScriptを使用してhtmlコードで呼び出すことができます

WebPayInterface.PaymentFinished(100, true);
于 2013-10-25T07:26:50.883 に答える