怎么使用微信扫描二维码登录网页版微信
目前,很多软件都可以使用第三方账号登入。微信可谓是开辟新径,微信则使用二维码扫描登录。如何使用微信扫描二维码登录网页版微信?
方法
首先,在桌面上找到360浏览器图标。
鼠标右击,找到“打开”,鼠标单击一下进入。
进入网页后在搜索栏中输入“微信网页版”后,点击“搜索”。
在出来的选项中,选择带有“官网”的“微信网页版”,鼠标单击进入。
此时网页页面会出现一个二维码图案,这时需要使用手机进行扫描。
扫描完成后,你的微信头像会显示出来,然后需要在手机上确认登录。
最后可以看见成功登录了网页版微信,你可以根据需要发送文件或者和好友聊天了。
扩展阅读,以下内容您可能还感兴趣。
如何使用java实现二维码扫描登录微信网页版(微信端)?
jsp+spring+struts2+mybatis:
模仿微信pc网页版扫码登录
使用js代码生成qrcode二维码减轻服务器压力
js循环请求服务端,判断是否qrcode被扫
二维码超时失效功能
二维码被扫成功登录,服务端产生sessionId,传到页面使用js保存cookie
多线程
### 生成qrcode相关js jquery.qrcode.js - ### 代码 “请使用手机扫码
//生成二维码
!function(){
var uuid = (“#uuid”).val();
var content;
content = “……….do?uuid=”+uuid;
//console.dir(content);(‘.pc_qr_code’).qrcode({
render:”canvas”,
width:200,
height:200,
correctLevel:0,
text:content,
background:”#ffffff”,
foreground:”black”,
src:”/logo.png”
});
setCookie(“sid”, 123, -1*60*60*1000);
keepPool();//自动循环调用
}();
function keepPool(){var uuid = $("#uuid").val();
$.get(ctx+"/web/login/pool.do",{uuid:uuid,},function(msg){//如果放入一个不存在的网址怎么办?
//console.log(msg);
if(msg.successFlag == '1'){
$("#result").html("扫码成功");
setCookie(msg.data.cname, msg.data.cvalue, 3*60*60*1000);
//alert("将跳转...");
window.location.href = ctx +"/webstage/login/success.do";
}else if(msg.successFlag == '0'){
$("#result").html("该二维码已经失效,请重新获取");
}else{
keepPool();
}
});
}
//设置cookie
function setCookie(cname, cvalue, expireTime) {
var d = new Date();
d.setTime(d.getTime() + expireTime);//设置过期时间
var expires = "expires="+d.toUTCString();
var path = "path=/"
document.cookie = cname + "=" + cvalue + "; " + expires + "; " + path;
}
java代码
//二维码首页public String index() { try {uuid = UUID.randomUUID().toString(); super.getRequest().setAttribute("uuid", uuid);
ScanPool pool = new ScanPool();
pool.setCreateTime(System.currentTimeMillis());
Map<String, ScanPool> map = new HashMap<String, ScanPool>(1);
map.put(uuid, pool);
PoolCache.cacheMap.put(uuid, pool);
pool = null;
} catch (Exception e) {
Log4jUtil.CommonLog.error("pc生成二维码登录", e);
} return "index";
}//判断二维码是否被扫描public void pool() {
DataResultInfo result = null;
System.out.println("检测[ " + uuid + " ]是否登录");
ScanPool pool = null;
if(MapUtils.isNotEmpty(PoolCache.cacheMap)) pool = PoolCache.cacheMap.get(uuid); try { if (pool == null) { // 扫码超时,进线程休眠
result = DataResultInfo.getInstance().failure();
result.setSuccessFlag(CommonConstant.Zero);
result.setExtension(CommonConstant.Zero, "该二维码已经失效,请重新获取");
Thread.sleep(10 * 1000L);
} else { // 使用计时器,固定时间后不再等待扫描结果--防止页面访问超时
new Thread(new ScanCounter(uuid, pool)).start(); boolean scanFlag = pool.getScanStatus(); //这里得到的ScanPool(时间靠前)和用户使用手机扫码后得到的不是一个,用户扫码后又重新更新了ScanPool对象,并重新放入了redis中,,所以这里要等待上面的计时器走完,才能获得最新的ScanPool
if (scanFlag) {
result = DataResultInfo.getSuccess(); // 根据e69da5e887aae799bee5baa6e997aee7ad9431333363396465uuid从redis中获取pool对象,得到对应的sessionId,返给页面,通过js存cookie中
JSONObject jsonObj = new JSONObject();
jsonObj.put("cname", CookieConstant.SESSION_KEY);
jsonObj.put("cvalue", pool.getSession());
result.setData(jsonObj);
} else {
result = DataResultInfo.getInstance().failure();
result.setMessage("等待扫描");
}
}
} catch (Exception e) {
e.printStackTrace();
}
sendJsonMessage(result);
}//手机扫码接口(以id和token作为用户身份登录)
public String phoneScanLogin() {
DataResultInfo result = null;
ScanPool pool = null;
if(MapUtils.isNotEmpty(PoolCache.cacheMap)) pool = PoolCache.cacheMap.get(uuid); try { if (pool == null) {
result = DataResultInfo.getInstance().failure();
result.setMessage("该二维码已经失效,请重新获取");
} else { if (StringUtils.isNotEmpty(id) && StringUtils.isNotEmpty(token)) { //根据id和token查询后台,获取用户信息userBean
String redisToken = redisUtil.getRedis(RedisKeyConstant.APP_TOKEN+userId); if(redisToken != null && redisToken.equals(token)){
UserBean userBean = userService.findByUserId(Long.valueOf(userId)); if (userBean != null) {
String sessionId = SessionConstant.SESSION_ID_PRE
+ FormatUtils.password(userBean.getId()
.toString());
Map<String, String> cookieSession = new HashMap<String, String>();
cookieSession
.put(CookieConstant.SESSION_KEY, sessionId); // WrCookie.writeCookie(getResponse(),cookieSession);
// 添加用户信息到redis
boolean re = redisUtil.addUserInfo( RedisKeyConstant.SESSION + sessionId, BeanUtils.toBean(userBean, UserInfo.class));
getSession().setAttribute( SessionConstant.USER_INFO_WEB, BeanUtils.toBean(userBean, UserInfo.class));
getSession().setAttribute( DomainConstant.USER_CENTER_KEY, DomainConstant.USER_CENTER);
pool.setSession(sessionId);
pool.scanSuccess();
}else{
result = DataResultInfo.getInstance().failure();
result.setMessage("用户信息获取异常!请稍后再试");
}
} else {
result = DataResultInfo.getInstance().failure();
result.setExtension("11", "用户身份信息失效,请重新登录!");
}
} else {
result = DataResultInfo.getInstance().failure();
result.setMessage("请求参数有误!"); return "error";
} // 不能清除,否则conn方法得不到pool对象,不会进入线程休眠
// System.out.println("清除扫描过的uuid");
//PoolCache.cacheMap.remove(uuid);
}
} catch (Exception e) {
Log4jUtil.CommonLog.error("手机扫码 后访问 异常", e);
}
sendJsonMessage(result); return null;
}//扫码成功跳转页
public String success() {
String sessionId = WrCookie.getCookie(super.getRequest(), CookieConstant.SESSION_KEY);
UserInfo userInfo = redisUtil.getUserInfo(RedisKeyConstant.SESSION + sessionId); super.getRequest().setAttribute(SessionConstant.USER_INFO_WEB, userInfo); return SUCCESS;
}//线程判断二维码是否超时class ScanCounter implements Runnable { public Long timeout = 30 * 1000L; //超时时长
// 传入的对象
private String uuid; private ScanPool scanPool; public ScanCounter(String p, ScanPool scanPool) {
uuid = p; this.scanPool = scanPool;
} @Override
public void run() { try {
Thread.sleep(timeout);
} catch (InterruptedException e) {
e.printStackTrace();
}
notifyPool(uuid, scanPool);
} public synchronized void notifyPool(String uuid, ScanPool scanPool) { if (scanPool != null) scanPool.notifyPool();
} public String getUuid() { return uuid;
} public void setUuid(String uuid) { this.uuid = uuid;
} public ScanPool getScanPool() { return scanPool;
} public void setScanPool(ScanPool scanPool) { this.scanPool = scanPool;
}
}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
ScanPool.java(存放uuid的bean)
public class ScanPool implements Serializable{/**
* @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么)
*/
private static final long serialVersionUID = -9117921544228636689L; private Object session ; //创建时间
private Long createTime = System.currentTimeMillis();
//登录状态
private boolean scanFlag = false;
public boolean isScan(){
return scanFlag;
}
public void setScan(boolean scanFlag){
this.scanFlag = scanFlag;
}
/**
* 获取扫描状态,如果还没有扫描,则等待固定秒数
* @param wiatSecond 需要等待的秒数
* @return
*/
public synchronized boolean getScanStatus(){
try
{
if(!isScan()){ //如果还未扫描,则等待
this.wait();
}
if (isScan())
{ System.err.println("手机扫描完成设置getScanStatus..true..........."); return true;
}
} catch (InterruptedException e)
{
e.printStackTrace();
}
return false;
}
/**
* 扫码之后设置扫码状态
* @param token
* @param id
*/
public synchronized void scanSuccess(){
try
{ System.err.println("手机扫描完成setScan(true)....同时释放notifyAll(手机扫码时,根据uuid获得的scanpool对象)");
setScan(true);
this.notifyAll();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public synchronized void notifyPool(){
try
{
this.notifyAll();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/***********************************************/
public Long getCreateTime()
{
return createTime;
}
public void setCreateTime(Long createTime)
{
this.createTime = createTime;
} public Object getSession() { return session;
} public void setSession(Object session) { this.session = session;
}
电脑版微信不用扫描二维码怎么登录
1、需要在电脑中下载安装“安卓模拟器”和“微信安卓版”,安卓模拟器大家百度搜索一下,可以找到很多。下面我们这里使用的是“东东手游助手”,在电脑中打开下载安装的【东东手游助手】,然后在zhidao【我的应用】中,点击【安装本地应用】,然后打开下载的【微信安卓版】进行安装;
2、在安卓模拟器中安装微信安卓版成功后,就可以点击【启动】打开微信了;
3、接下来会弹出微信登陆界面,登陆界面不同微信网页版,而是很手机版回基本相同,我们直接点击左下角的【登陆】;
4、再接下来我们看到的默认是手机号登陆,无需使用二维码。如果手机在身答边,可以接受验证码的话,可以直接使用手机号登陆,然后获取短信验证完成登陆。如果手机不在身边或者丢了,我们还可以点击下方的【使用其他方式登陆】。
微信登录电脑版不扫二维码怎么登陆
打开百度,搜索天天模拟器,进入天天模拟器官网
点击官网里面的”百立即下载“,跳出“新建下载任务”框。
点击“新建下载任务”框里面的“浏览”选择把文件下载到电度脑的哪一个地方
《一般默认的都是下载到电脑C盘,但是下载到C盘会很占电脑,导致电脑反应变迟钝问,所以建议下载到电脑的其他盘里面,D、E、F盘都可以》
文件下载好后,点击“打开文件夹”就可以看见天天模拟器的图标
咱们再用鼠标左键双击图标,出现如图所示,点击“运行(答R)
点击“运行”出现如图所示的框,点击”开始下载“
如果出现如图类似的东西,请点击右下角的“继续版下载”,(如果没有请忽权略这一步)
8
下载完成后,再按照提示完成操作,桌面就会有“天天模拟器的图标”了,双击图标
微信网页版怎么用账号登陆
1、手机登录自己的私人微信号;
2、电脑浏览来器打开微信网页版登录页面;
3、打开手机微信上的“扫一扫”功能,对准网页版二维码扫描;
4、扫描成功,请到手机微信上确认登录源网页版,确认好了之后,网页版就会自动加载你微信信息;
5、登录成功,可以直接向好友或者微信群发送消息zhidao。
温馨提醒:微信网页版没有朋友圈功能,而且对话列表不会显示公众号发来的信息。
电脑版微信怎么扫描二维码
告诉你个十分管用的方法,
我的来是2.7.0,版本有点老,不过好用。首先要至少有两个图,其中一个是你要识别的图,另一个随源便。把这两个图分开发给任意一个人或微信传输助手。百你要点开没用的那个图,也就是随便找的那个图。点开后,右键,有四个选项,然后,移动鼠标度,不要管这四个东西,鼠标移动到图片右侧或左侧(这个要根据你发图知片的顺序,反正是要点到要识别的图),点击切换上一张或下一张,就来到了要识别道的图了。离成功仅差一步:右键,点开你就有惊喜。
望采纳,谢谢!