前言

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

正文

一、准备

二、 代码

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取得值是一样,所以如果已经有了微博的签名可以直接拷贝到微信使用)

以上对Android 微信登录分享朋友圈的功能,有需要的朋友可以看下。

android 微信登陆功能,Android 实现微信登录详解相关推荐

  1. android 微信登陆功能,Android集成微信登录

    现在的项目中几乎都会用到微信登录分享支付之类的,我现在做的这个项目正好用到了微信登录功能,再次记录下我的使用过程: 1.第一步  先去微信开放平台注册账号,填写应用信息,提交审核,大概需要三到五天的时 ...

  2. 微信分享功能android,Android微信分享功能实例+demo

    Android微信分享功能实例 1 微信开放平台注册 2 获得appId,添加到程序中,并运行程序 3 使用应用签名apk生成签名,添加到微信开放平台应用签名,完成注册 4 测试分享功能. 有问题请留 ...

  3. CocosCreator系列——接入原生微信登陆功能

    CocosCreator系列--接入原生微信登陆功能 先看一下微信官方的接入文档吧,不得不说,我真的怀疑微信的文档肯定不是技术写的,简直乱得一批,看的人头昏脑胀,主要看一下这个链接的接入流程就行了,不 ...

  4. 微信登陆的LOL只有一个服务器,《LOL》部分大区开启微信登陆功能 扫码即可进入游戏...

    <LOL>部分大区开启微信登陆功能 扫码即可进入游戏 2019-05-06 16:33:28来源:游戏下载编辑:柠檬评论(0) <英雄联盟>官方今日发公告表示,部分大区已开放微 ...

  5. 微信登陆的LOL只有一个服务器,英雄联盟开启微信登陆功能 网友吐槽:这波操作多此一举...

    近日英雄联盟官方发布了一条公告引发网友议论声不断,原来英雄联盟官方将于8月21日8.16版本发布以后,在部分大区开启微信登陆功能测试,相信在科技越来越发达的今天,我们很多人在出门时只需要带上一部手机就 ...

  6. Android客户端实现注册/登录详解(一)

    前言 我们在开发安卓App时难免要与服务器打交道,尤其是对于用户账号信息的注册与登录更是每个android开发人员必须掌握的技能,本文将对客户端的注册/登录功能的实现进行分析,不到之处还请指出. 在这 ...

  7. Android第三方登录详解2

    接着Android第三方登录详解1讲 1.找到友盟  文档中心 2.找到 3.将 UMSocialService mController = UMServiceFactory.getUMSocialS ...

  8. [免费专栏] Android安全之数据存储与数据安全「详解」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  9. 小程序setdata优化_微信小程序 setData的使用方法详解

    微信小程序 setData的使用方法详解 微信小程序 setData的使用方法详解 最近在使用微信小程序的setData时,遇到了以下问题.如下: 官网文档在使用setData()设置数组对象的某个元 ...

  10. Android四大组件之bindService源码实现详解

        Android四大组件之bindService源码实现详解 Android四大组件源码实现详解系列博客目录: Android应用进程创建流程大揭秘 Android四大组件之bindServic ...

最新文章

  1. matlab 双边沿滤波,图片漫画效果(DoG算子和双边滤波)
  2. 推荐系统-07-lambda架构
  3. springboot整合图像数据库Neo4j
  4. P1136 迎接仪式
  5. 网页转图片 java_java-网页转图片
  6. 拼接dem,山地出现平地
  7. Linux学习笔记(三)
  8. javascript 文件的同步加载与异步加载
  9. RHEL7 本地yum源配置
  10. 实现用户裂变的5大原则
  11. python 基础干货 01
  12. checkbox全选、清除、反选
  13. 服务器主机自建的私有云盘,360路由器搭建私有云主机(360路由器加硬盘自建nas)...
  14. echart 重新加载
  15. 5个高清图片素材网站,无水印,免费商用。
  16. 签电子合同的流程是怎样的
  17. iOS常见错误8-Missing iOS Distribution signing identity for “XXXXX”. Xcode can request one for you.
  18. (8)echo 命令
  19. 12.26:有一种关系叫做“乔布斯与比尔盖茨”
  20. csgo搭建显示段位的服务器,csgo官匹隐藏分怎么看 官匹段位升级机制

热门文章

  1. 在win10系统中批量修改文件名称
  2. iOS13 微信消息不通知 打开微信才能看到消息
  3. 计算机维护费入什么会计科目,金税盘技术维护费计入什么科目_增值税
  4. ajax回调函数中刷新页面方法
  5. 关于PPT母版的含义和使用方法
  6. 动物基因组测序基础分析流程总结(GWAS全流程第一部分:WGS基础流程)
  7. 基于照片的3D建模软件
  8. LeaRun快速开发平台,.Net Core加持,功能更全面
  9. i18n国际语言代码对照表
  10. 微信小应用官方开发文档