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

Posted

技术标签:

【中文标题】Android Activity 到 WebView 和 WebView 到 Activity 参数传递【英文标题】:Android Activity to WebView and WebView to Activity Parameter Passing 【发布时间】:2013-11-04 04:29:20 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

主要概念是,您在 Activity 中创建一个 javascript 界面来保存您的 WebView。

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

【讨论】:

您的 cmets 似乎解决了我的第二部分,即网页到活动通信。网页参数传递的活动仍然存在。 如果您的网页在您的控制之下(您可以更改服务器代码),那么您可以将参数附加到您在 webview.loadUrl("http://myserver.com/mypage?param1=foo&param2=bar"); 中加载的 url 中【参考方案2】:

您可以在使用 Intents、Shared Preferences 和 Bundle 进行导航时使用Intent.putExtra()。请阅读Shared Preferences、Intents、Bundle 的 android 文档

【讨论】:

以上是关于Android Activity 到 WebView 和 WebView 到 Activity 参数传递的主要内容,如果未能解决你的问题,请参考以下文章

android开发 如何从一个activity中的两个按钮分别跳转到另外两个activity?

android activity 怎么跳fragment

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

android activity之间怎么跳转?

Android中当前Activity跳转到当前Activity页面

Android - 将数据从 AsyncTask 传递到 Activity