今天帮助网友解决了一个在应用中登录后进应用的网页自动登录。
在这里分享给大家,希望能帮助更多的人。直接上代码:
/**
* 网页自动登录
* 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值。
💬 评论