首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android: 3d-安全重定向响应

Android: 3d-安全重定向响应
EN

Stack Overflow用户
提问于 2016-02-26 06:30:55
回答 1查看 3.9K关注 0票数 5

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

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

有没有人有这方面的经验或类似的用例?任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-30 13:26:23

我们已经经历了一个类似的问题,诺德亚的3D安全页面在安卓WebView。这归结到了试图访问本地存储的页面。我们将下面的代码添加到应用程序中,以使其正常工作:

代码语言:javascript
复制
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);
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35645015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档