綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[資料] Android WebView加載HTML表單並通過javascript提交(一)

[複製連結] 查看: 1591|回覆: 0|好評: 0
跳轉到指定樓層
樓主
暗桌之光 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2011-7-24 15:23

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
使用android的WebView控件加載HTML表單,通過javascript調用java對像提交表單,在java對像中獲取表單的值:
  1. import android.app.Activity;
  2. import android.app.AlertDialog;
  3. import android.content.DialogInterface;
  4. import android.os.Bundle;
  5. import android.os.Handler;
  6. import android.view.View;
  7. import android.webkit.JsResult;
  8. import android.webkit.WebChromeClient;
  9. import android.webkit.WebSettings;
  10. import android.webkit.WebView;
  11. import android.widget.Button;
  12. import android.widget.TextView;

  13. public class WebViewTest extends Activity {
  14. private WebView mWebView = null;
  15. private TextView txtView = null;
  16. private Handler mHandler = new Handler();
  17. /** Called when the activity is first created. */

  18. @Override
  19. public void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.main);
  22. mWebView = (WebView) findViewById(R.id.webView);
  23. txtView = (TextView) findViewById(R.id.webViewResult);
  24. WebSettings webSettings = mWebView.getSettings();
  25. //不保存密碼
  26. webSettings.setSavePassword(false);
  27. //不保存表單數據
  28. webSettings.setSaveFormData(false);
  29. webSettings.setJavaScriptEnabled(true);
  30. //不支持頁面放大功能
  31. webSettings.setSupportZoom(false);
  32. mWebView.addJavascriptInterface(new LoginJavaScriptImpl(), "loginImpl"); mWebView.setWebChromeClient(new MyAndroidWebClient());

  33. ((Button)findViewById(R.id.btnLoadhtml)).setOnClickListener(new View.OnClickListener() {
  34. public void onClick(View arg0) {
  35. mWebView.loadData(createWebForm(), "text/html", "UTF-8");
  36. // mWebView.loadDataWithBaseURL("", createWebForm(), "text/html", "UTF-8", "");
  37. }
  38. });
  39. }

  40. private String returnValue;
  41. protected final class LoginJavaScriptImpl {
  42. public void login(String username, String password){
  43. returnValue = username + ": " + password; mHandler.post(new Runnable() {
  44. public void run() { txtView.setText(returnValue);
  45. }
  46. });
  47. }
  48. }

  49. private final class MyAndroidWebClient extends WebChromeClient {

  50. @Override
  51. public boolean onJsAlert(WebView view,String url, String message, JsResult result) {
複製代碼
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則