Android Activity 到 WebView 和 WebView 到 Activity 的参数传递

标签 android android-activity webview

我有一个应用程序,其中一个 Activity 与我们的服务器通信并获取未结金额的详细信息。我希望用户使用支付网关支付未结金额。对于支付网关,我必须从 webview 调用网页并将未结金额详细信息和其他凭据从 Activity 传输到 webview 中加载的页面。在事务结束时,我再次需要从 webview 中的网页获取一些参数到 Activity 。

这是我想在 Activity 和加载到 web View 中的页面之间实现的双向通信。我试图找到一种方法来做到这一点,但找不到进行这种交换的简单示例。

最佳答案

您可以使用 javascript WebAppInterface 实现您想要的,如所演示的 here .

主要概念是,您在持有 WebView 的 Activity 中创建一个 javascript 接口(interface)。

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");

最后在你的 html 代码中使用 javascript 你可以调用

WebPayInterface.PaymentFinished(100, true);

关于Android Activity 到 WebView 和 WebView 到 Activity 的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19583324/

相关文章:

android - 如何在android中使透明 Activity 窗口始终位于顶部?

javascript - 如何使用 javascript 在 Android Webview 中格式化时间戳

java - Android Marshmallow 6.0 webview 在运行时请求权限位置

java - Android 处理 GIF 文件

android - 单击 Activity 选项卡重新加载当前 Activity

android - 是否可以在 Google Play 上限时免费分发销售应用程序?

安卓禁用 Activity

ios - 在 iOS 版 Cordova 中设置自动填充

android - YouTube watchme 安卓应用异常找不到 "libffmpeg.so"

Android 8.1.0 前台服务通知问题