2015-01-27 4 views
0

Процесс должен быть простым:Как использовать почтовый URL в webview

запрос (с данными POST) -> set in> WebView. я пытаюсь интегрировать страницу оплаты ворота, которые открываются в веб-просмотра .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")); 

пожалуйста, помогите мне, когда я открыть с помощью страницы оплаты внешнего браузера с открытым . Но когда я пытаюсь открыть в стороннем веб-обзоре, это не работает.

+0

У меня такая же проблема, вы решили свою проблему – Lokesh

ответ

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"); 

    } 
+0

проголосовать за публикацию стены кода, без каких-либо объяснений –

+0

спасибо, henry chuang, –

0

У меня такая же проблема, я могу размещать URL в WebView успешно, но следующая страница не открывается в веб-просмотра

я стараюсь ниже код стр страницы шоу в 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; 
       } 
      }); 

Надеюсь, полезно для других.