我正在使用我的应用程序使用Payfort sdk进行在线支付,一切都完全集成并且工作正常,在付款时,我可以毫无顾虑地使用普通卡进行支付,但使用3-D 安全卡我必须输入一个用于验证的密码,因此,带有密码字段的(由 Visa 验证的)webview 会自动打开,其中包含所需的详细信息。
这里的问题是,当点击密码字段时,它会获得焦点,但键盘没有打开以写入密码,打开的 webview 不是我的应用程序的视图,我无法控制它,而是关闭它。
我什至不知道如何弄清楚它现在已打开,因为我没有收到任何相应的回调。
通过 Payfort 代码导航,我发现他们发布了AlertDialog
一个布局,其中包含一个webView
要显示的验证页面链接:
private Dialog showVerificationDialog(Context context, String url, VerificationDialogDismissListener onDialogListener) {
LayoutInflater layoutInflater = LayoutInflater.from(context); // context here is MyActivity context
View view = layoutInflater.inflate(R.layout.web_dialog, null);
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
// just to display the Dialog at 80% of the screen
view.setMinimumHeight((int) (displayMetrics.heightPixels * 0.8f));
view.setMinimumWidth((int) (displayMetrics.widthPixels * 0.8f));
// setting the webView
WebView webView = (WebView) view.findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
// setting the Dialog
AlertDialog.Builder builder = new AlertDialog.Builder(context)
.setView(view)
.setOnCancelListener(onDialogListener);
if (Build.VERSION.SDK_INT >= 17) {
builder.setOnDismissListener(onDialogListener);
}
Dialog dialog = builder.create();
dialog.show();
return dialog;
}
此对话框包含用于验证过程的 webView,因此存在问题,但我找不到该代码的任何问题,任何一切都直接链接。