Java 从webview返回活动

Java 从webview返回活动,java,android,Java,Android,我正在从应用程序设置interac付款。为此,我需要将用户带到interac网站,如果成功,它将进入内部服务器(称为success\uURL),如果失败,它将进入failure\uURL。到目前为止,一切正常 但是,在成功或失败之后,我需要带着这种反应(成功或失败)回到我的最后一项活动。如何通过响应返回到上一个活动?用于在Java代码(在您的活动中)注册js回调的侦听器。覆盖上一个活动中的OnActivityResult,并使用bundle和setResult方法返回 private c

我正在从应用程序设置interac付款。为此,我需要将用户带到interac网站,如果成功,它将进入内部服务器(称为
success\uURL
),如果失败,它将进入
failure\uURL
。到目前为止,一切正常


但是,在成功或失败之后,我需要带着这种反应(成功或失败)回到我的最后一项活动。如何通过响应返回到上一个活动?

用于在Java代码(在您的活动中)注册js回调的侦听器。

覆盖上一个活动中的OnActivityResult,并使用bundle和setResult方法返回

    private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);

        if (url.contains("success-url")) 
        {
           //call intent to navigate to activity
            setResult(RESULT_OK, bundle);
            ActivityWebview.this.finish();
        }
    }

}

简单地说,在事务结束时,网页将在页面上显示一个链接,例如:“OK”、“Continue”等。。。其url将等于:


取决于交易状态

现在,您所能做的是,在用户单击该链接时截取url

这可以通过创建自定义
WebViewClient
、重写
shouldOverrideUrlLoading()
、截取url并根据url类型采取适当的操作来实现

例如:

WebView webView = (WebView) findViewById(R.id.add_funds_web_view);
webView.setWebViewClient(new CustomWebClient());
webView.getSettings().setJavaScriptEnabled(true);

// ......... 

private class CustomWebClient extends WebViewClient {

   @Override
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
      if (url.equals("success")) {
            // set success result and finish
            return true;
      }else if (url.equals("failure")){
            // set failure result and finish
            return true;
      }
     return super.shouldOverrideUrlLoading(view, url);
   }  

}

但最低sdk应为17