Android WebView加载HTML表单并通过javascript提交
来源:互联网 发布:护国神翼 知乎 编辑:程序博客网 时间:2024/06/05 02:30
http://www.eoeandroid.com/thread-90393-1-1.html
java代码:
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- import android.os.Bundle;
- import android.os.Handler;
- import android.view.View;
- import android.webkit.JsResult;
- import android.webkit.WebChromeClient;
- import android.webkit.WebSettings;
- import android.webkit.WebView;
- import android.widget.Button;
- import android.widget.TextView;
- public class WebViewTest extends Activity {
- private WebView mWebView = null;
- private TextView txtView = null;
- private Handler mHandler = new Handler();
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mWebView = (WebView) findViewById(R.id.webView);
- txtView = (TextView) findViewById(R.id.webViewResult);
- WebSettings webSettings = mWebView.getSettings();
- //不保存密码
- webSettings.setSavePassword(false);
- //不保存表单数据
- webSettings.setSaveFormData(false);
- webSettings.setJavaScriptEnabled(true);
- //不支持页面放大功能
- webSettings.setSupportZoom(false);
- mWebView.addJavascriptInterface(new LoginJavaScriptImpl(), "loginImpl"); mWebView.setWebChromeClient(new MyAndroidWebClient());
- ((Button)findViewById(R.id.btnLoadhtml)).setOnClickListener(new View.OnClickListener() {
- public void onClick(View arg0) {
- mWebView.loadData(createWebForm(), "text/html", "UTF-8");
- // mWebView.loadDataWithBaseURL("", createWebForm(), "text/html", "UTF-8", "");
- }
- });
- }
- private String returnValue;
- protected final class LoginJavaScriptImpl {
- public void login(String username, String password){
- returnValue = username + ": " + password; mHandler.post(new Runnable() {
- public void run() { txtView.setText(returnValue);
- }
- });
- }
- }
- private final class MyAndroidWebClient extends WebChromeClient {
- @Override
- public boolean onJsAlert(WebView view,String url, String message, JsResult result) {
- new AlertDialog.Builder(WebViewTest.this) .setTitle("提示信息") .setMessage(message) .setPositiveButton("确定", new DialogInterface.OnClickListener() {
- public void onClick( DialogInterface dialoginterface, int i) { } }).show();
- return true;
- }
- }
- private String createWebForm(){ StringBuffer sb = new StringBuffer();
- sb.append("< html>").append("< head>");
- sb.append("< meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>"); sb.append("< title>").append("表单测试").append("< /title>");
- sb.append("< /head>< script language=\"javascript\">");
- sb.append("function checkform(){var username=document.loginForm.username.value;"); sb.append("var password=document.loginForm.password.value;");
- sb.append("if(username==\"\"){alert(\"用户名不能为空!\");
- return false
- ;}");
- sb.append("if(password==\"\"){alert(\"密码不能为空!\");
- return false;}");
- //sb.append("return username + \":\" + password;");
- sb.append("window.loginImpl.login(username, password)");
- sb.append("}");
- sb.append("< /script>");
- sb.append("< body>");
- sb.append("< form method=\"post\" name=\"loginForm\">");
- sb.append("< table>");
- sb.append("< tr>");
- sb.append("< td align=\"right\">").append("用户名").append("< /td>");
- sb.append("< td").append("< input type=\"text\" name=\"username\">").append("< /td>"); sb.append("< /tr>");
- sb.append("< tr>");
- sb.append("< td align=\"right\">").append("密 码").append("< /td>");
- sb.append("< td").append("< input type=\"password\" name=\"password\">").append("< /td>"); sb.append("< /tr>");
- sb.append("< tr>");
- sb.append("< td align=\"center\" colspan=\"2\">");
- sb.append("< input type=\"submit\" value=\"登录\" onclick=\"checkform();\">");
- sb.append(" < input type=\"reset\" value=\"重置\">").append("< /td>");
- sb.append("</tr>"); sb.append("< /table>"); sb.append("< /form>");
- sb.append("< /body>");
- sb.append("< /html>");
- return sb.toString();
- }
- }
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- import android.os.Bundle;
- import android.os.Handler;
- import android.view.View;
- import android.webkit.JsResult;
- import android.webkit.WebChromeClient;
- import android.webkit.WebSettings;
- import android.webkit.WebView;
- import android.widget.Button;
- import android.widget.TextView;
- public class WebViewTest extends Activity {
- private WebView mWebView = null;
- private TextView txtView = null;
- private Handler mHandler = new Handler();
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mWebView = (WebView) findViewById(R.id.webView);
- txtView = (TextView) findViewById(R.id.webViewResult);
- WebSettings webSettings = mWebView.getSettings();
- //不保存密码
- webSettings.setSavePassword(false);
- //不保存表单数据
- webSettings.setSaveFormData(false);
- webSettings.setJavaScriptEnabled(true);
- //不支持页面放大功能
- webSettings.setSupportZoom(false);
- mWebView.addJavascriptInterface(new LoginJavaScriptImpl(), "loginImpl"); mWebView.setWebChromeClient(new MyAndroidWebClient());
- ((Button)findViewById(R.id.btnLoadhtml)).setOnClickListener(new View.OnClickListener() {
- public void onClick(View arg0) {
- mWebView.loadData(createWebForm(), "text/html", "UTF-8");
- // mWebView.loadDataWithBaseURL("", createWebForm(), "text/html", "UTF-8", "");
- }
- });
- }
- private String returnValue;
- protected final class LoginJavaScriptImpl {
- public void login(String username, String password){
- returnValue = username + ": " + password; mHandler.post(new Runnable() {
- public void run() { txtView.setText(returnValue);
- }
- });
- }
- }
- private final class MyAndroidWebClient extends WebChromeClient {
- @Override
- public boolean onJsAlert(WebView view,String url, String message, JsResult result) {
- new AlertDialog.Builder(WebViewTest.this) .setTitle("提示信息") .setMessage(message) .setPositiveButton("确定", new DialogInterface.OnClickListener() {
- public void onClick( DialogInterface dialoginterface, int i) { }
- }).show();
- return true;
- }
- }
- Android WebView加载HTML表单并通过javascript提交
- android webView中的html页面通过javascript访问java代码
- 使用webview加载本地html页面,并处理html页面中的javascript事件
- Android WebView 加载HTML代码
- WebView通过网络请求加载html
- javascript表单验证通过提交,没通过不提交
- 如何通过javascript提交表单form
- 前台技术--通过javaScript提交表单
- 如何通过javascript提交表单form
- Android webview加载Html页面,传参到Html并获取返回值
- Android菜鸟学习笔记(WebView加载html页面,页面提交数据问题)
- Android 网络:使用URLConnection提交请求,获取html代码加载WebView
- Android使用webview控件加载本地html,通过Js与后台Java实现数据的传递
- Android中WebView加载本地Html,与JavaScript与Android方法相互传值
- Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)
- Android中WebView加载本地Html,与JavaScript与Android交互: 一
- android WebView加载html 并 引用本地资源(图片、字体库)
- Android-通过WebView获取html内容
- Android平台,如何调用javascript操作网页和js调用系统功能
- hadoop.hama 科学计算(待续)
- imp 和 exp的性能
- Xcode 中设置部分文件ARC支持
- CTreeCtrl点击鼠标处理?
- Android WebView加载HTML表单并通过javascript提交
- 浅析Python中的Python全局变量
- Android 数据库之Cursor
- 动态传入的逗号连接的字符串,分散成多条记录(Oracle 10g 使用REGEXP_SUBSTR 分拆字符串)
- linux之cut用法
- 编写servlet Error instantiating servlet class
- 【转】jquery的ajax向ashx传值,中文乱码问题
- 多线程学习系列 - 2 - Immutable Pattern
- [面试官说] 2012择业秘诀之如何选择称心如意的IT公司