小弟 在登陆的时候进行抓包、但是没抓到····· (

一定是我方法不对)、后面没办法了,想了很久我们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、代码中有很多不足、希望我总结的资料能帮到大家。

代码如下

{CSDN:CODE:/**
 *
* @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";
// String UA_two =
 // "Mozilla/5.0 (Android; Tablet; rv:14.0) Gecko/14.0 Firefox/14.0";
@SuppressLint("JavascriptInterface")
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bt = (Button) findViewById(R.id.bt);
  et = (EditText) findViewById(R.id.et);
  webview=(WebView) findViewById(R.id.my_web);
  
  // 设置Web ViewUA标识
  // webview.getSettings().setUserAgentString(UA);
// 设置WebView能够执行javaScript脚本
  webview.getSettings().setJavaScriptEnabled(true);
// 数据保存
  // webview.getSettings().setSaveFormData(true);
  // webview.getSettings().setSavePassword(true);
// 加载URL内容
  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视图客户端
  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);
int sysVersion = Integer.parseInt(VERSION.SDK);
  // 隐藏缩放按钮
  WebViewZoomControlUtil.setZoomControl(sysVersion, webview);
bt.setOnClickListener(new OnClickListener() {
@Override
   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);
  }
 }
private class HelloWebViewClient extends WebViewClient {
  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
   // TODO Auto-generated method stub
   view.loadUrl(url);
return true;
  }
@Override
  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);
  }
@Override
  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 自动登陆新浪微博实现(原理)相关推荐

  1. android里qq登录界面,Android仿QQ登陆窗口实现原理

    今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局.首先看一下官方图片 还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航页面.首先程序进入SplashActi ...

  2. autoit 三次尝试 自动登陆新浪微博

    1.登陆微博 2.输入用户名及密码 3.提交 4.写入微博信息 5.提交------未成功(对网页程序不了解,有空的人可以帮忙看看) #include <IE.au3> #AutoIt3W ...

  3. Android WebView填表登陆QQ空间

    安卓WebView可以通过JS对网页文档对象进行操作,实现自动填写账号和密码,这样下次就可以免手动输入了,比较方便.这儿使用QQ空间网页版进行模拟登陆 准备工作 基于Android Studio3.0 ...

  4. android webview 自动点击事件,Android中的WebView布局点击事件的方法

    继承WebView自定义一个MyWebView,然后重载它的onTouchEvent方法,就可以解决了. public class MyWebView extends WebView{ public ...

  5. [SpringSecurity]web权限方案_自动登陆_原理分析和具体实现

    自动登陆 1.cookie技术 2.安全框架机制实现自动登陆 这里我们使用安全框架机制实现自动登陆技术 实现原理 具体实现 第一步 创建数据库 CREATE TABLE `persistent_log ...

  6. Android之记住密码与自动登陆实现

    本文主要讲述了利用sharedpreference实现记住密码与自动登陆功能 根据checkbox的状态存储用户名与密码 将结果保存在自定义的application中,成为全局变量 布局文件 < ...

  7. php仿qq登录界面安卓,Android_Android仿QQ登陆窗口实现原理,今天根据腾讯qq,我们做一个 - phpStudy...

    Android仿QQ登陆窗口实现原理 今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局.首先看一下官方图片 还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航 ...

  8. Android WebView简要介绍和学习计划

    我们通常会在App的UI中嵌入WebView,用来实现某些功能的动态更新.在4.4版本之前,Android WebView基于WebKit实现.不过,在4.4版本之后,Android WebView就 ...

  9. android webview 填充,从Android使用WebView自动填充表格

    我正在使用WebView尝试使用我发送的数据填充表单.从Android使用WebView自动填充表格 WebView webView; String url = "http://139.59 ...

最新文章

  1. 清晰易懂的条件随机场原理总结
  2. scikit_image
  3. 计算机视觉Computer Vision网址导航
  4. 基于以太坊发布属于自己的数字货币(代币)完整版
  5. 【转】2.1 SharePoint服务器端对象模型 之 访问网站和列表数据(Part 1)
  6. linux将a文件移动到bb,linux中vi整理全集(基础)
  7. js 实现PHP中的in_array()
  8. Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
  9. 关于IE11浏览器不能正确调用ActiveX控件的解决办法
  10. 四旋翼无人机飞控系统设计(输出分配)
  11. 江湖救急笔记——计算机网络
  12. Virtual Vertex Muster9—3D渲染农场管理软件
  13. 乔春洋:品牌文化的三大内涵
  14. 电信大数据治理与质量管理
  15. SYSTEM大法好!!!
  16. 通过HttpURLConnection连接上传文件和参数
  17. 大众点评CAT开源监控系统剖析
  18. Android P 连接tbox 后热点无法打开的问题
  19. 猫耳RGB设计观感超萌,还支持7.1声道,硕美科GS510头戴耳机更适合女生
  20. 光纤熔接之盘纤技巧(首先你得有一把好切割刀)

热门文章

  1. 2019.7.2【PMP项目管理er日报】
  2. MFC读取bin文件并以16进制显示出来
  3. fireworks 学习课程
  4. 南宁师范大学计算机学院校区,师院新生攻略之五合校区(2017版)
  5. 求职信英语计算机作文,求职信的英语作文(通用5篇)
  6. 烟台大学CSDN俱乐部活动:与毕业生谈人生
  7. docker基础:私库系列:再探Harbor:(5)集成clair
  8. python怎么定义split_python split函数用法
  9. Google Chrome视频弹窗插件安装
  10. 找出数组中只出现了一次的数字(Java)