1.首先我们应该先去微信开放平台(https://open.weixin.qq.com)填写应用信息,提交审核

2.审核完成微信开放平台会生成一个appid,和sercet,拿到之后请妥善保管

  1. 按照微信开放平台给的文档,下载相应的sdk以及签名工具,在此强调 必须是用签名打包的正式版的apk才可以调起微信的客户端进行授权登录,必须保证应用的签名(用签名工具可以获取)和开放平台上填写的信息一致。

4.开始代码模块
在app级别的build.gradle里面添加依赖

    //微信implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
android{defaultConfig{//微信登陆signingConfigs {release {storeFile file('health.keystore')keyAlias "health"storePassword "123456"keyPassword "123456"}debug {storeFile file('health.keystore')keyAlias "health"storePassword "123456"keyPassword "123456"}}
}
buildTypes {release {minifyEnabled truezipAlignEnabled trueshrinkResources trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'signingConfig signingConfigs.debug}debug {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}}
}

5.建一个包 名字叫wxapi(必须一致) 在这个包里创建一个类,WXEntryActivity(一致)

public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {private static final int RETURN_MSG_TYPE_LOGIN = 1;private String code;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);FrescoApp.mWxApi.handleIntent(getIntent(),this);}@Overridepublic void onReq(BaseReq baseReq) {}@Overridepublic void onResp(BaseResp baseResp) {//登录回调switch (baseResp.errCode){case BaseResp.ErrCode.ERR_OK:switch (baseResp.getType()){case RETURN_MSG_TYPE_LOGIN://拿到了微信返回的code,立马再去请求access_tokencode = ((SendAuth.Resp)baseResp).code;if (TextUtils.isEmpty(code)){code =getIntent().getStringExtra("_wxapi_sendauth_resp_token");}Log.i("wx_code", code);//Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT).show();//就在这个地方,用网络库什么的或者自己封的网络api,发请求去咯,注意是get请求Intent intent = new Intent(this, LoginActivity.class);intent.putExtra("code",code);startActivity(intent);finish();break;}break;}}}

6.在AndroidManifest.xml注册:

 <activity android:name=".wxapi.WXEntryActivity"android:exported="true"android:launchMode="singleTop"><intent-filter><action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.DEFAULT"/><data android:scheme="wxe3fcbe8a55cd33ff" /></intent-filter></activity>

7.在App里面 //别忘了在清单文件里面也初始化App

public class FrescoApp extends Application {public static FrescoApp context;public static IWXAPI mWxApi;@Overridepublic void onCreate() {super.onCreate();context = this;Fresco.initialize(this);registerTowX();}private void registerTowX() {//AppConst.WEIXIN.APP_ID是指你应用在微信开放平台上的AppID,记得替换。mWxApi = WXAPIFactory.createWXAPI(this, "wxe3fcbe8a55cd33ff", true);// 将该app注册到微信mWxApi.registerApp("wxe3fcbe8a55cd33ff");}//apppublic  static  FrescoApp getApp(){return context;}
}

8.一定别忘了拿到传过来的code值

public class LoginActivity extends AppCompatActivity {private Imageview wechat_pay;
protected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.login);wechat_pay = findViewById(wechat_pay);//微信登陆wechat_pay.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (!FrescoApp.mWxApi.isWXAppInstalled()){Toast.makeText(LoginActivity.this, "您还未安装微信客户端", Toast.LENGTH_SHORT).show();return;}final SendAuth.Req req = new SendAuth.Req();req.scope="snsapi_userinfo";req.state="diandi_wx_login";FrescoApp.mWxApi.sendReq(req);Intent intent = getIntent();String code = intent.getStringExtra("code");RetrofitUtils.getInstance().getWechatlogin(code, new Observer<WeChatLoginBean>() {@Overridepublic void onSubscribe(Disposable d) {}@Overridepublic void onNext(WeChatLoginBean value) {if (value.getStatus().equals("0000")){Toast.makeText(LoginActivity.this, value.getMessage(), Toast.LENGTH_SHORT).show();Intent intent = new Intent(LoginActivity.this, Login2Activity.class);startActivity(intent);finish();}}@Overridepublic void onError(Throwable e) {}@Overridepublic void onComplete() {}});}});}
}

写到这,微信登陆就完成了!!!!
最后 喜欢的话 就点个赞吧!!!

Android 微信登陆相关推荐

  1. android 微信 openid,android 微信登陆手把手教学获取openid

    最近项目用到微信支付,企业打款到个人微信账户余额,需要个人在提交结算时授权微信登陆,以获取openid,用于企业打款,许久没有撸微信第三方的我吓得赶紧把流程都记录一下 image.png image. ...

  2. Android微信登陆

    转自农民伯伯: http://over140.cnblogs.com 正文 一.准备 注册.认证步骤自己来.微信开放平台:https://open.weixin.qq.com 二. 代码 2.1 唤起 ...

  3. android os 2.3 微信,Android微信登陆

    前言 分享到微信朋友圈的功能早已经有了,但微信登录推出并不久,文档写的也并不是很清楚,这里记录分享一下. 正文 一.准备 注册.认证步骤自己来.微信开放平台:https://open.weixin.q ...

  4. android wexin com,Android微信登陆

    前言 分享到微信朋友圈的功能早已经有了,但微信登录推出并不久,文档写的也并不是很清楚,这里记录分享一下. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. python批量pdf转word,python批量实现Word文件转换为PDF文件
  2. mSystems和Microbiology Spectrum杂志“肠道微生态专题”论文征稿
  3. 南科大新任校长薛其坤:考研3次才进入中科院,杨振宁曾点赞他「诺奖级」研究成果...
  4. name 'false' is not defined
  5. mahout demo——本质上是基于Hadoop的分步式算法实现,比如多节点的数据合并,数据排序,网路通信的效率,节点宕机重算,数据分步式存储...
  6. 小车主板哪家强?PS2手柄4路电机输出..火魔童主板了解一下?
  7. 修改引入表打造穿透KIS6的下载者(转)
  8. 最大连续子数组和与JUnit测试
  9. bootStrap库介绍
  10. 《Finite-Element Neural Networks for Solving Differential Equations》梳理
  11. ASP.NET 防止F5刷新页面按钮重复提交
  12. 《Android游戏开发详解》一3.5 继承
  13. 庞果网一道题(字符博弈)的一点想法
  14. golang 最小堆排序实现
  15. 外链检测工具,反链友链检测工具
  16. python将英文翻译为中文_Python中英文翻译工具
  17. 企业微信给微信好友定时发送图文并茂的消息
  18. 浅谈地铁视频监控的方法与技巧
  19. 最有效的赚钱方法,只有100元如何赚到10万?
  20. 在你最穷的时候,是怎么翻身的?

热门文章

  1. 牛学长iTunes备份密码移除工具
  2. Foundation框架之字符串和日期
  3. 拦截图片代码 精易web浏览器_精易Web浏览器 UChk验证源码
  4. android 像素密度,屏幕密度,values-sw480dp
  5. 按键消抖(并联0.1uf电容)
  6. 苹果计算机怎么切换科学计算机,Mac如何使用科学计算器
  7. 免备案去掉端口号访问网站
  8. fifo的rdata_异步FIFO设计与实现
  9. c语言flag,[求助]int flag的意思
  10. MYsql的数学函数