前言

分享到微信朋友圈的功能早已经有了,但微信登录推出并不久,文档写的也并不是很清楚,这里记录分享一下。

声明

欢迎转载,但请保留文章原始出处:)

博客园:http://www.cnblogs.com

农民伯伯: http://over140.cnblogs.com

正文

一、准备

注册、认证步骤自己来。微信开放平台:https://open.weixin.qq.com

二、 代码

2.1唤起微信登录

参考官网文档:资源中心/移动应用开放/接入指南/Android接入指南

private IWXAPI mWeixinAPI;

private

void loginWithWeixin() {

if (mWeixinAPI ==

null) {

mWeixinAPI = WXAPIFactory.createWXAPI(

this, WEIXIN_APP_ID,

false);

}

if (!mWeixinAPI.isWXAppInstalled()) {

//提醒用户没有按照微信

return;

}

mWeixinAPI.registerApp(WEIXIN_APP_ID);

SendAuth.Req req =

new SendAuth.Req();

req.scope = WEIXIN_SCOPE;

req.state = WEIXIN_STATE;

mWeixinAPI.sendReq(req);

}

WEXIN_SCOPE这里填的snsapi_userinfo,用snsapi_base提示没权限。

WEIXIN_STATE用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验。

不出意外就能唤起微信登录了。

2.2接收微信的请求及返回值

在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,参考文档在AndroidManifest.xml注册Activity。

public

class WXEntryActivity

extends Activity {

@Override

protected

void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

handleIntent(getIntent());

}

@Override

protected

void onNewIntent(Intent intent) {

super.onNewIntent(intent);

handleIntent(intent);

}

private

void handleIntent(Intent intent) {

SendAuth.Resp resp =

new SendAuth.Resp(intent.getExtras());

if (resp.errCode == BaseResp.ErrCode.ERR_OK) {

//

用户同意

}

}

}

注意,这里和微信的例子写的有点不一样,不过结果是一样的,这个能取到code等信息,测试返回数据如下:

E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_state xxx

E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_token xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

E/WXEntryActivity(14288): onCreate...key:_mmessage_appPackage com.tencent.mm

E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_transaction

null

E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_lang zh_CN

E/WXEntryActivity(14288): onCreate...key:_wxapi_command_type 1

E/WXEntryActivity(14288): onCreate...key:_mmessage_content

null

E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_country

null

E/WXEntryActivity(14288): onCreate...key:_mmessage_checksum [B@426358e8

E/WXEntryActivity(14288): onCreate...key:wx_token_key com.tencent.mm.openapi.token

E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_url xxxxxxxxxxx

E/WXEntryActivity(14288): onCreate...key:_mmessage_sdkVersion 570490883

E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_errcode 0

E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_errstr

null

E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_openId

null

xxx部分的内容我已经隐掉了,拿到code就能拿到access——token了,后续依据文档调用即可。

这里你可以把WXEntryActivity的theme弄成透明的,然后再弹起来一个ProgressDialog进行后续的操作(提交你自己的服务器),就能和现有的界面完全融合了。

三、注意:

3.1获取签名必须用release包。(所以你会发现微信、微博SDK取得值是一样,所以如果已经有了微博的签名可以直接拷贝到微信使用)

结束

纠结到底是微信登录还是QQ登录,,,,

android wexin com,Android微信登陆相关推荐

  1. Android之调用微信登陆、分享、支付

    转载:http://blog.csdn.net/lowprofile_coding/article/details/48086381 前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调 ...

  2. cocos creator接入微信登陆sdk android篇

    cocos creator接入微信登陆sdk 背景 项目引擎使用cocos creator,使用android studio集成开发工具,在开发之前先做好准备工作 在微信开放平台上创建好移动应用,拿到 ...

  3. 微信支付android白屏,android 解决微信登陆白屏样式问题

    咱们在作微信登陆或者支付的时候,会用到SDK自带的两个页面android WXEntryActivity.WXPayEntryActivityapi 可是总会由于这两个页面的样式问题,出现白屏啊抖动啊 ...

  4. Android 集成微信登陆不走回调onResp

    上代码 <activityandroid:exported="true"android:launchMode="singleTop"android:nam ...

  5. Android接入微信登陆

    首先添加工具包,名字为libammsdk.jar(微信有相应的包下载) 然后在src.main.java.com.****新建一个wxapi的包并存放这两个activity(名字不能更改) WXEnt ...

  6. Android第三方登录签名错误,关于应用签名修改后第三方微信登陆不了的问题

    android员工离职后,今天重新生成了打包的key算是以防万一吧. 再次运行程序的时候发现第三方微信登陆不了. 第一步:打包程序并查看微信开放平台的应用签名是否正确. 使用新的签名打包程序 同时运行 ...

  7. 微信登陆接入(Android/IOS(swift)/Java后台)

    本文章仅作为个人笔记 微信Android接入指南,需要登陆后查看(开放平台->资源中心->开发资源->移动应用->接入指南) 微信IOS接入指南,需要登陆后查看(开放平台-&g ...

  8. Android 调用微信登陆、支付、分享,出现的白屏、黑屏、闪屏问题。

    当我在去调用微信的登录界面,或者其他支付界面, WXEntryActivity又一个界面,这样看起来很不协调 (WXEntryActivity类finish的时候会有闪屏的效果). 为了让用户感觉只是 ...

  9. native react 集成微信登录_react native 接入微信登陆(Android)

    添加依赖 api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+' 包名.wxapi.WXEntryActivity.java pub ...

最新文章

  1. clone是深拷贝还是浅拷贝_Cloneable接口的作用与探索理解浅拷贝与深拷贝
  2. 网站title实现切换
  3. ant引入html页面,antdesign 中 使用 iconfont symbol方式引入图标不展示
  4. 比特币的缺陷以及改进
  5. Tidb慢日志显示不全
  6. php 删除相对应的id,PHP 在下面这个留言板代码中加入删除按钮,每一个删除按钮删除相对应一行数据,这怎么弄...
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的电影院管理系统
  8. java程序设计简明教程张晓龙_Java网络编程简明教程
  9. php在线考试系统源代码_php实现在线考试系统
  10. 一个方法解决Warning: Permanently added 'gitee.com,180.97.125.228' (ECDSA) to the list of
  11. LED的本质和发光原理是什么,彩色的LED灯是怎么做出来的
  12. DirectX SDK 2010 , DXSDK_Jun10.exe, 下载地址
  13. stm32智能避障小车(三)之L298N
  14. 手写仿淘宝商城页面(html+css+部分js)
  15. 目标追踪:FCNT、GOTURN、SiamFC、SiamRPN、SiamRPN++
  16. Unity发布抖音小游戏:广告ID申请
  17. Nginx报错:nginx: [error] invalid PID number in /run/nginx.pid的解决方案
  18. 个人微信支付接口,非二清,无需APP,支持H5
  19. Error:A problem occurred configuring project ':app'. failed to find target with hash string 'andro
  20. 【原创】【SPI】SPI通信协议介绍

热门文章

  1. 小米感谢米粉选择环保版小米11,但喜欢环保的米粉实在少之又少
  2. python snownlp了解_python做snowNLP文本情感分类代码示例
  3. 关于windows系统安装sybase数据库 服务端和客户端使sybase数据库服务启动失败的问题解决方案以sybase Ase _15.7为例
  4. 谷歌浏览器视频播放加速代码
  5. linux apache tomcat ajp,apache ajp 整合 tomcat 错误
  6. 51单片机步进电机全套资料(启停+正反转+加减速+显示速度+中断)【源程序+流程图+接线图+视频+答辩报告】综合设计首选
  7. python-传递任意数量的(关键字)实参
  8. 大人,时代变了!做测试也要懂Python开发!
  9. matlab的优势和特点,MATLAB优势特点
  10. python三维矩阵可视化_科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数)...