我们在 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);