Android:3d 安全重定向响应

标签 android android-webview payment 3d-secure bankid

我有一个 Android 应用程序,我在该应用程序内处理付款。付款有时还需要 3d-secure 验证。因此,这需要将用户重定向到一个网页,他们将能够在该网页上执行一些适当的操作:例如输入代码等。就我而言,该应用程序是针对瑞典用户的,它将他们重定向到一个页面,他们必须在该页面上打开另一个“bank ID”应用程序(在同一台设备或其他设备上)以执行此验证。

在我们的 iOS 应用程序上,此功能按预期工作。一旦用户执行了验证,浏览器就会收到一个回调,然后可以用来相应地更新应用程序,但是在 Android 上,我正在使用的 WebView 没有收到通知.所以到目前为止,我无法处理用户验证事件。

有没有人有这个或任何类似用例的经验?感谢您的帮助。

最佳答案

我们在 Android WebView 中的 Nordea 3D Secure 页面遇到了类似的问题。 它归结为试图访问本地存储的页面。我们将以下代码添加到应用中以使其正常工作:

mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setDatabaseEnabled(true);

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
  mWebView.getSettings().setDatabasePath("/data/data/" + 
    mWebView.getContext().getPackageName() + "/databases/");
}

mWebView.setWebViewClient(new WebViewClient(){
  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if(url.startsWith("intent:")){
      Intent intent = new Intent();
      intent.setPackage("com.bankid.bus");
      intent.setAction(Intent.ACTION_VIEW);
      intent.addCategory(Intent.CATEGORY_BROWSABLE);
      intent.addCategory(Intent.CATEGORY_DEFAULT);
      intent.setType("bankid");
      intent.setData(Uri.parse("bankid://www.bankid.com?redirect=null")) ;
      startActivityForResult(intent, 0);
      return true;
    }

    // your existing override code goes here probably "return false"  
    // to stop webview redirects to browser.
  }
});
mWebView.loadUrl(url);

关于Android:3d 安全重定向响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35645015/

相关文章:

testing - 如何为 BlackBerry 应用内支付测试设置环境?

Android - OpenCV 的替代品?

显示 DrawerLayout 时 Android View 可点击

java - (android studio)无法更改webview中的 "Webpage not available"页面

android - 是否可以清除 Android 设备中的所有 cookie?

android - 为什么位图到 Base64 字符串在 android 的 webview 上显示黑色背景?

angularjs - 尝试将数据发布到服务器时,Braintree payment_method_nonce 为空

Android 应用内计费 queryInventoryAsync 返回 sku 和购买项目大小 0

java - 如何使用 Vitamio 播放加密视频文件 (.mpg)?

android - 我可以直接在 android 中播放 .caf 文件吗?