这个过程应该很简单:
查询(使用POST数据) - >设置in->的WebView。 我尝试集成一个在Web视图中打开的付款门页面.i有一个帖子URL链接和一些参数。我使用此代码
postData = "hash="+hash+"&key="+key+"&txnid="+txnid+"&amount="+amount+"&productinfo="+productinfo+"&firstname="+firstname+"&email="+email+"&phone="+phone+"&salt="+salt+"&surl="+surl+"&furl="+ furl+"&service_provider="+ service_provider;
// Javascript inabled on webview
webView.getSettings().setJavaScriptEnabled(true);
// Other webview options
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.getSettings().setBuiltInZoomControls(true);
//webView.getSettings().setPluginState(PluginState.ON);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient(){
//If you will not use this method url links are open in new browser not in webview
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.postUrl("https://test.payu.in/_payment", EncodingUtils.getBytes(postData, "base64"));
return false;
}
});
//webView.postUrl("https://test.payu.in/_payment", EncodingUtils.getBytes(postData, "base64"));
当我打开外部浏览器支付页面打开时,请帮助我。但是当我尝试在侧面webview中打开它不起作用。
答案 0 :(得分:2)
String url = "https://test.payu.in/_payment";
Map<String, String> mapParams = new HashMap<String, String>();
mapParams.put("amount", "100");
mapParams.put("productinfo", "ipad");
webview_ClientPost(webView, url, mapParams.entrySet());
public void webview_ClientPost(WebView webView, String url, Collection< Map.Entry<String, String>> postData){
StringBuilder sb = new StringBuilder();
sb.append("<html><head></head>");
sb.append("<body onload='form1.submit()'>");
sb.append(String.format("<form id='form1' action='%s' method='%s'>", url, "post"));
for (Map.Entry<String, String> item : postData) {
sb.append(String.format("<input name='%s' type='hidden' value='%s' />", item.getKey(), item.getValue()));
}
sb.append("</form></body></html>");
webView.loadData(sb.toString(), "text/html", "UTF-8");
}
答案 1 :(得分:0)
我遇到同样的问题,我可以在网页浏览中成功发布网址,但下一页无法在网页视图中打开
我在webview中尝试下面的代码页面显示
在webview中添加以下设置
webView.getSettings().setUserAgentString("Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17");
webView.getSettings().setDomStorageEnabled(true);
覆盖onReceivedSslError()方法。
webView.setWebViewClient(new WebViewClient() {
public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
handler.proceed() ;
}
public boolean shouldOverrideUrlLoading(WebView view, String url) {
webView.loadUrl(url);
return false;
}
});
希望对其他人有所帮助。