Android微信登陆
前言
分享到微信朋友圈的功能早已经有了,但微信登录推出并不久,文档写的也并不是很清楚,这里记录分享一下。
欢迎转载,但请保留文章原始出处:) 博客园: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 xxxE/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登录,,,,
转载:http://www.cnblogs.com/over140/p/4127271.html
android 仿微信表情雨下落! 文章链接:https://mp.weixin.qq.com/s/yQXn-YjEFSW1X7A7CcuaVg 众所周知,微信聊天中我们输入一些关键词会有表情雨下落,比如输入「生日快乐」「么么哒」会有相应的蛋糕、亲吻的表情雨下落,今天就来完成这个表情雨下落的效果。
最近有个APP中使用了微信授权登录功能,项目中我们采用leakcanary来检测内存泄漏,发现微信登录有内存泄漏的问题。现将解决过程记录如下,不确定与微信SDK版本有没关系,欢迎讨论指正。
微信是当前非常火爆的时尚社交软件,尤其是在朋友圈、聊(yue)天(pao)功能方面可谓是挖掘了人性的极致。
Android开源之仿微信UI 这是一个仿Android版本的微信UI开源项目,该项目实现了微信表面的UI编码设计与实现,尚未实现功能部分。
相关文章
- android从activity跳转到fragment解决
- 加密狗android,Android系统加密狗的设计与实现
- Android常用加密库集合
- android+制作开机动画,Android 开机动画制作详解
- android开机动画多长时间_Android开机动画及黑屏[通俗易懂]
- android开发笔记之 Android代码混淆打包
- 自己动手用Android和Xposed编写一个微信聊天机器人——《微信聊天精灵》实现关键词自动回复。
- android短信验证码方案,Android之短信验证码
- 模仿Android微信小程序,实现小程序独立任务视图的效果
- Android Services Library_android freeware
- android 设置系统dialog 样式
- Android studio更新后出现警告:Warning:The `android.dexOptions.incremental` property is deprecated and it has
- 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 反射获取 IActivityManager 对象 )
- 亚马逊App Store将在Win11发布前支持Android AAB安装包
- Android Pay登陆香港,但可能拼不过微信和苹果
- Android系统基于Linux内核,实现移动设备突破极限。(android linux内核)
- android微信sdkapi调用不成功解决方案
- Android第三方应用接入微信平台研究情况分享(二)
- android版本检测Android程序的版本检测与更新实现介绍
- 解析Android开发优化之:从代码角度进行优化的技巧
- Android学习笔记--使用剪切板在Activity中传值示例代码
- android中去掉窗口全屏显示的简单方法
- Android使用Gallery实现3D相册(附效果图+Demo源码)
- Android开发学习之WallPaper设置壁纸详细介绍与实例