今天帮助网友解决了一个在应用中登录后进应用的网页自动登录。
在这里分享给大家,希望能帮助更多的人。直接上代码:
/** * 网页自动登录 * http://haohailai.taobao.com/ * @author xiehaibo * */ public class MainActivity extends Activity { private WebView webView1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView1 = (WebView) findViewById(R.id.webView1); // 设置支持JavaScript脚本 WebSettings webSettings = webView1.getSettings(); webSettings.setJavaScriptEnabled(true); // 设置可以访问文件 webSettings.setAllowFileAccess(true); // 设置支持缩放 webSettings.setBuiltInZoomControls(true); // 设置WebViewClient webView1.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { Log.d("admin", "网页加载完了"); String uname = "帐号"; String password = "密码"; // 加载完了再调用js登录代码 view.loadUrl("javascript: {" + "document.getElementById('username').value = '" + uname + "';" + "document.getElementById('password').value = '" + password + "';" + "var frms = document.getElementsByName('tableForm');" + "frms[0].submit(); };"); // 登录成功后加载框取消 super.onPageFinished(view, url); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.d("admin", "网页开始加载"); // 在这里可以创建一个加载框。。。 super.onPageStarted(view, url, favicon); } }); webView1.loadUrl("网页地址,包含登录表单"); } }
注意的是:
view.loadUrl("javascript: {" + "document.getElementById('username').value = '" + uname + "';" + "document.getElementById('password').value = '" + password + "';" + "var frms = document.getElementsByName('tableForm');" + "frms[0].submit(); };");
username、password、tableForm要该为你自己网页的表单里的id值。