2012-12-17 1 views
0

Android 4.0에서 양식 제출이 작동하지 않습니다. 같은 코드가 안드로이드의 낮은 버전과 젤리 같은 높은 버전에서 잘 작동합니다. document.myForm.submit()은 다음 페이지로 넘어 가고 값은 page.html? value = ""와 같이 추가됩니다. 하지만 페이지를 찾을 수 없다는 것은 폼 대신에 완전한 URL로 표시됩니다.Android 4.0에서 HTML 양식 제출이 작동하지 않습니다. 동일한 코드가 낮은 버전의 Android에서 제대로 작동합니다.

답변

0

안드로이드 4.0은 "?" HTML 파일의 일부로 간주됩니다. WebViewClient를 덮어 씁니다.

private class MyWebViewClient extends WebViewClient { 

    public String values = ""; 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 

     if (url.contains("?")) { 
      try { 
       values = URLDecoder.decode(url, "UTF-8"); 
      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } 
      url = url.replace("?", "%45"); 
      String args[] = url.split("%45"); 
      view.loadUrl(args[0]); 
     }else{ 
      view.loadUrl(url); 
     } 
     return true; 
    } 


    @Override 
    public void onPageFinished(WebView view, String url) { 
     if(values.length()>0){ 
      if(url.contains("smartmodesresult.html")){ 
       mWebView.loadUrl("javascript:getUrlVars(\""+values+"\");"); 
      } 
     } 
     super.onPageFinished(view, url); 
    } 

} 
관련 문제