Android webview 自动登陆新浪微博实现(原理)
小弟 在登陆的时候进行抓包、但是没抓到····· (
一定是我方法不对)、后面没办法了,想了很久我们WEB上面可以进行模拟用户操作 ,下面是我总结出来的方法。
如有不足、请大牛指点。 小弟在此谢谢
关于webview自动登陆的问题 思路如下
1、在电脑上面的 “新浪微博登陆” 和手机上的URL 是不一样的、我们需要用到的工具 chrome 浏览器 在浏览器里面下载 User-Agent Switcher插件。切换到Android U User-Agent标识(小伙伴们可以自己体验一下、网页会被重定向);
2、我们拿到了手机的URL 、先用webview 加载URL 跑起来看看···· 第一眼看到登陆的页面
3、那么问题来了、我们怎么进行登陆、
4、在chrome 上面使用User-Agent Switcher插件,切换到Android U User-Agent标识。审查元素、找到账号密码输入框、登陆按钮的ID。
5、在模拟用户点击···
6、代码中有很多不足、希望我总结的资料能帮到大家。
代码如下
*
* @Description: 自动登陆新浪微博
* @author xiexiupu@live.com
* @date 2015-3-24 下午12:10:16
* @version V1.0
*/
public class MainActivity extends Activity {
private WebView webview;
private EditText et;
private Button bt;
String UA = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1653.0 Safari/537.36";
// "Mozilla/5.0 (Android; Tablet; rv:14.0) Gecko/14.0 Firefox/14.0";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
et = (EditText) findViewById(R.id.et);
webview=(WebView) findViewById(R.id.my_web);
// 设置Web ViewUA标识
// webview.getSettings().setUserAgentString(UA);
webview.getSettings().setJavaScriptEnabled(true);
// webview.getSettings().setSaveFormData(true);
// webview.getSettings().setSavePassword(true);
webview.loadUrl(" https://passport.sina.cn/signin/login?entry=mweibo&res=wel&wm=3349&r=http%3A%2F%2Fm.weibo.cn%2F%3Fjumpfrom%3Dweibocom");
webview.setWebViewClient(new HelloWebViewClient());// 有个新建的私有类
webview.getSettings().setSupportZoom(true);
// 设置出现缩放工具
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setUseWideViewPort(true);
// 自适应屏幕
// webview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
webview.getSettings().setLoadWithOverviewMode(true);
webview.getSettings().setUseWideViewPort(true);
// 隐藏缩放按钮
WebViewZoomControlUtil.setZoomControl(sysVersion, webview);
public void onClick(View v) {
// TODO Auto-generated method stub
// 加载URL内容
webview.loadUrl("http://" + et.getText().toString().trim());
}
});
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack();
return true;
} else {
return super.onKeyDown(keyCode, event);
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
}
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "加载错误", Toast.LENGTH_LONG).show();
super.onReceivedError(view, errorCode, description, failingUrl);
}
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
//输入账号密码和密码
LoginByPassword("输入你的新浪微博账号", "输入你的新浪微博密码");
}
}
//模拟用户登陆
public void LoginByPassword(String username, String password) {
final String strJS = String
.format("javascript:document.getElementById('loginName').value='%s';document.getElementById('loginPassword').value='%s';"
+ "document.getElementById('loginAction').click();",
username, password);
webview.post(new Runnable() {
public void run() {
webview.loadUrl(strJS);
}
});
}
源码
点击下载源码
Android webview 自动登陆新浪微博实现(原理)相关推荐
- android里qq登录界面,Android仿QQ登陆窗口实现原理
今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局.首先看一下官方图片 还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航页面.首先程序进入SplashActi ...
- autoit 三次尝试 自动登陆新浪微博
1.登陆微博 2.输入用户名及密码 3.提交 4.写入微博信息 5.提交------未成功(对网页程序不了解,有空的人可以帮忙看看) #include <IE.au3> #AutoIt3W ...
- Android WebView填表登陆QQ空间
安卓WebView可以通过JS对网页文档对象进行操作,实现自动填写账号和密码,这样下次就可以免手动输入了,比较方便.这儿使用QQ空间网页版进行模拟登陆 准备工作 基于Android Studio3.0 ...
- android webview 自动点击事件,Android中的WebView布局点击事件的方法
继承WebView自定义一个MyWebView,然后重载它的onTouchEvent方法,就可以解决了. public class MyWebView extends WebView{ public ...
- [SpringSecurity]web权限方案_自动登陆_原理分析和具体实现
自动登陆 1.cookie技术 2.安全框架机制实现自动登陆 这里我们使用安全框架机制实现自动登陆技术 实现原理 具体实现 第一步 创建数据库 CREATE TABLE `persistent_log ...
- Android之记住密码与自动登陆实现
本文主要讲述了利用sharedpreference实现记住密码与自动登陆功能 根据checkbox的状态存储用户名与密码 将结果保存在自定义的application中,成为全局变量 布局文件 < ...
- php仿qq登录界面安卓,Android_Android仿QQ登陆窗口实现原理,今天根据腾讯qq,我们做一个 - phpStudy...
Android仿QQ登陆窗口实现原理 今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局.首先看一下官方图片 还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航 ...
- Android WebView简要介绍和学习计划
我们通常会在App的UI中嵌入WebView,用来实现某些功能的动态更新.在4.4版本之前,Android WebView基于WebKit实现.不过,在4.4版本之后,Android WebView就 ...
- android webview 填充,从Android使用WebView自动填充表格
我正在使用WebView尝试使用我发送的数据填充表单.从Android使用WebView自动填充表格 WebView webView; String url = "http://139.59 ...
最新文章
- 清晰易懂的条件随机场原理总结
- scikit_image
- 计算机视觉Computer Vision网址导航
- 基于以太坊发布属于自己的数字货币(代币)完整版
- 【转】2.1 SharePoint服务器端对象模型 之 访问网站和列表数据(Part 1)
- linux将a文件移动到bb,linux中vi整理全集(基础)
- js 实现PHP中的in_array()
- Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
- 关于IE11浏览器不能正确调用ActiveX控件的解决办法
- 四旋翼无人机飞控系统设计(输出分配)
- 江湖救急笔记——计算机网络
- Virtual Vertex Muster9—3D渲染农场管理软件
- 乔春洋:品牌文化的三大内涵
- 电信大数据治理与质量管理
- SYSTEM大法好!!!
- 通过HttpURLConnection连接上传文件和参数
- 大众点评CAT开源监控系统剖析
- Android P 连接tbox 后热点无法打开的问题
- 猫耳RGB设计观感超萌,还支持7.1声道,硕美科GS510头戴耳机更适合女生
- 光纤熔接之盘纤技巧(首先你得有一把好切割刀)