Android接入微信SDK之一:发起微信授权登录
1.重要的事情首先说!
包名、应用签名、app id 三者都必须和在腾讯上申请的一致!!!否则将不能成功。
包名:就是在腾讯上申请的包名
应用签名:使用微信官网提供的《签名生成工具》(这个工具是一个apk安装包)安装到手机上获取包的签名(先将你的程序安装到手机上,再安装签名生成工具,在工具上输入你程序包名就可以获得)
app id:微信申请后可获得
2.使用默认值创建一个android项目(包名必须为在腾讯申请的包名!!!)
3.在默认界面上增加一个Button按钮,方便模拟登陆发起
3.新增一个Constans.java文件用于记录全局的常量,结构如下(其中com.yiyou.game.d...r就是在微信上申请的包名)
①Constants.java中的内容如下:
public class Constants {public static final String APP_ID = "wxxxxxxx"; //替换为申请到的app idpublic static IWXAPI wx_api; //全局的微信api对象 }
②MainActivity.java中的内容如下:
public class MainActivity extends Activity { @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//创建微信api并注册到微信Constants.wx_api = WXAPIFactory.createWXAPI(MainActivity.this, Constants.APP_ID, true);Constants.wx_api.registerApp(Constants.APP_ID);Button btn = (Button)findViewById(R.id.button1);//得到按钮 btn.setOnClickListener(new OnClickListener() { //注册按钮点击事件 @Overridepublic void onClick(View v) { //发起登录请求final SendAuth.Req req = new SendAuth.Req();req.scope = "snsapi_userinfo";req.state = "wechat_sdk_demo_test";Constants.wx_api.sendReq(req); } });} }
③这时候就可以发起微信登录了,但是要得到微信的返回结果,还需要下面的步骤
4.获得微信调用的反馈
①在包名下新增wxapi文件夹(这个文件夹名字是微信官方规定的,必须一致)
②在wxapi文件夹下新增继承于Activity并实现IWXAPIEventHandler接口的WXEntryActivity类(这个类名是微信官方规定的,必须一致)
③在eclipse中显示结构如下:
④WXEntryActivity.java文件代码如下:
public class WXEntryActivity extends Activity implements IWXAPIEventHandler { @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); Constants.wx_api.handleIntent(getIntent(), this);}//微信请求相应 @Overridepublic void onReq(BaseReq baseReq) {}//发送到微信请求的响应结果 @Overridepublic void onResp(BaseResp resp) {switch (resp.errCode) {case BaseResp.ErrCode.ERR_OK:Log.i("WXTest","onResp OK");if(resp instanceof SendAuth.Resp){SendAuth.Resp newResp = (SendAuth.Resp) resp;//获取微信传回的codeString code = newResp.code;Log.i("WXTest","onResp code = "+code);}break;case BaseResp.ErrCode.ERR_USER_CANCEL:Log.i("WXTest","onResp ERR_USER_CANCEL ");//发送取消break;case BaseResp.ErrCode.ERR_AUTH_DENIED:Log.i("WXTest","onResp ERR_AUTH_DENIED");//发送被拒绝break;default:Log.i("WXTest","onResp default errCode " + resp.errCode);//发送返回break;}finish();} }
5.在AndroidManifest.xml中对WXEntryActivity进行配置
①增加权限
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
②增加WXEntryActivity的配置
<activityandroid:exported="true"android:name=".wxapi.WXEntryActivity" android:launchMode="singleTop"android:theme="@android:style/Theme.NoDisplay"/>
③总体情况如截图
6.编译生成运行,即可发起微信登录并得到微信返回。
如果还是不行,那么可能由以下问题引起:
1.app id是否正确?
2.包名是否和申请时填写的一致?
3.应用签名是否和申请时填写的一致?(可以用签名生成工具对比一下)通常可能发生的情况是,申请用的签名包,调试用的非签名包,这种情况很常见。
4.WXEntryActivity.java文件的位置是否正确
5.AndroidManifest.xml中的配置是否正确?
官方文档:《移动应用微信登录开发指南》
以上,发起微信授权登录部分完。
Android接入微信SDK之一:发起微信授权登录相关推荐
- 微信公众号开发之授权登录(前端vue篇)
前序: 由于之前一直是后端直接调用微信授权后,拿到相关信息后再返回给我(就是以前的前后端不分离),所以对微信公众号开发的微信授权登录还一直处于懵逼情况,直到今天有一个项目需要前后端分离,要前端主动去获 ...
- 微信小程序发起用户授权
第一步 先通过wx.getSetting()获取用户的当前设置,返回值中只会出现小程序已经向用户请求过的权限. 第二步 判断用户是否已经授权某项设置, 如果某项设置(如:scope.userLocat ...
- springboot微信sdk方式进行微信支付
微信支付: 官方文档:https://pay.weixin.qq.com/wiki/doc/api/index.html 第三方SDK:https://github.com/Pay-Group/bes ...
- 微信第三方扫描登录 java源代码_微信开放平台基于网站应用授权登录源码(java)...
1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: 2. 通过code参数加上AppID和AppSecret等,通过 ...
- vue 项目如何引入微信sdk,使用微信接口
写在前面: 做微信的网页基本上都要接入微信的sdk,我在做的时候,也颇费了一番功夫,然后就想记录一下,供自己日后翻阅,以及让有需要的朋友可以做一下参考,如果喜欢的可以点波赞,或者关注一下,希望可以帮到 ...
- 微信公众号发起微信支付 c#
tenpay.dll: MD5Util.cs using System; using System.Collections.Generic; using System.Linq; using Syst ...
- url 微信公众号开发 配置失效_微信公众号开发之授权登录
一.UnionId和openId 微信登录最重要的两个返回信息,一个是UnionId,一个是OpenId.两者之间有着必然的联系. UnionID机制的作用说明:如果开发者拥有多个移动应用.网站应用和 ...
- 基于Thinkphp5+EasyWeChat+fastadmin微信小程序授权登录获取手机号微信公众号网页---联合授权登录
战前准备 1.使用 composer 安装 EasyWeChat $ composer require overtrue/wechat:~4.0 -vvv 或者在composer.json文件renq ...
- 微信公众号扫码授权登录思路
引言 上学期研究了一下微信登录相关内容,也写了两三篇笔记,但是最后实际登录流程没有写,主要因为感觉功能完成有所欠缺,一直也没有好的思路:这两天我又看了看官方文档,重新构思了一下微信公众号登录相关的内容 ...
- 微信小程序 php 手机授权登录
wxml <!--前台页面,通过判断决定展示登录还是信息--> <view wx:if="{{isHide}}"><view wx:if=" ...
最新文章
- ECUG 全球技术大会重回上海!
- Java存储过程调用CallableStatement
- python request-python-request-各方法使用及格式
- SAP Cloud for Customer的跳转链接制作navigation link
- arduino判断是否连接串口_Arduino-串口通信
- 用框架的你,可能早已忽略了这些事件API
- jspdf 分页_使用html2canvas跟jspdf导出导出PDF文件
- es对几十亿数据能达到秒级响应吗_十亿级数据,秒级响应 | 观远数据「极速分析引擎」这样实现...
- wap2app是什么
- 【Windows 10】U盘量产
- Timer 控件中的Elapsed事件与tick事件的区别
- python 三维栅状图_基于OpenGL的二维矢量地图可视化技术研究
- 《大数据处理技术Spark》--林子雨
- C/C++中关于交换(Swap)函数的三种方法
- 618来了云服务器商家疯了
- 怎么改变html无序列表的字号,html无序列表代码 html5 无序列表的行距怎么设置
- RDM1 软件需求与开发
- 事件监听的理解(ActionListener等)
- skynet框架应用 (十二) snax框架
- R语言绘图,分组添加拟合线,单独标注拟合函数和R2