android

Android中的WebView的form表單提交(post)

1.佈局

  1. <WebView
  2. :id="@+id/webview"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent">
  5. </WebView>

2.程式碼

  1. private void initWebView() {
  2. WebView webview = findViewById(R.id.webview);
  3. //1. Url的地址
  4. String mUrl = "http://www.baidu.com/";
  5. //2. 要提交的資料
  6. String mData = "name=李圖&age=18&sex=n&page=1";
  7. WebSettings webSettings = webview.getSettings();
  8. //3. 設定快取
  9. webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
  10. //4. 適應解析度
  11. webSettings.setUseWideViewPort(true);
  12. //5. 設定能夠解析Javascript
  13. webSettings.setJavaScriptEnabled(true);
  14. webSettings.setLoadWithOverviewMode(true);
  15. webSettings.setDomStorageEnabled(true);
  16. webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
  17. webview.setHapticFeedbackEnabled(false);
  18. //6. java回撥js程式碼,不要忘了@JavascriptInterface這個註解,不然點選事件不起作用
  19. webview.addJavascriptInterface(new JsInterface(this), "android");
  20. webview.setWebViewClient(new WebViewClient() {
  21. @Override
  22. public boolean shouldOverrideUrlLoading(WebView view, String url) {
  23. Uri uri = Uri.parse(url);
  24. if (("/appGetCashCallback.?source=m").equals(uri.toString())) {
  25. finish();
  26. startActivityNoResult(TakeMoneySuccessActivity.class, null);
  27. }
  28. return super.shouldOverrideUrlLoading(view, url);
  29. }
  30. @Override
  31. public void onPageFinished(WebView view, String url) {
  32. super.onPageFinished(view, url);
  33. //載入完畢,關閉載入的dialog
  34. }
  35. @Override
  36. public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
  37. //接受信任所有網站的證書
  38. handler.proceed();
  39. }
  40. });
  41. //7. 表單提交,postUrl
  42. webview.postUrl(mUrl,mData.getBytes());
  43. }

 

本文章已修改原文用詞符合繁體字使用者習慣使其容易閱讀

版權宣告:此處為CSDN博主「千萬種心動」的原創文章,依據CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。

原文連結:https://blog.csdn.net/JiYaRuo/article/details/101272684