这篇文章给大家图文详解Android集成微信登录的步骤,通过文章整理的内容,大家只需要几行代码就可以实现微信登录的功能了,刚兴趣的朋友们下面来一起看看吧。
一、首先在Application的onCreate中写:
// GeneralAppliction.java
public static IWXAPI sApi;
@Override
public void onCreate() {
super.onCreate();
sApi = WXEntryActivity.initWeiXin(this, AppConst.WEIXIN_APP_ID);
}
二、在需要登录的地方添加:
// MainActivity.java
WXEntryActivity.loginWeixin(MainActivity.this, GeneralAppliction.sApi);
三、下面对具体的集成步骤做详细的描述。
集成步骤:
1、在开放平台注册创建应用,申请登录权限
2、下载sdk,拷贝相关文件到项目工程目录
3、全局初始化微信组件
4、请求授权登录,获取code
5、通过code获取授权口令access_token
6、在第5步判断access_token是否存在和过期
7、如果access_token过期无效,就用refresh_token来刷新
8、使用access_token获取用户信息
1. 在开放平台注册创建应用,申请登录权限
这一步其实不用怎么讲,无法就是在微信开放平台上注册一个账号,然后创建移动应用。
需要注意的是:应用签名的部分
此处应用签名我使用的是线上的key的md5,关于这个需要注意的问题可以看:Android的签名总结
2. 下载sdk,拷贝相关文件到项目工程目录
开发工具包(SDK)的下载:可以使用微信分享、登录、收藏、支付等功能需要的库以及文件
示例Demo
下载后把libammsdk.jar文件拷贝到AS工程的libs目录,并把示例Demo里源文件目录下的wxapi目录整个拷贝到,工程目录的src下的根包下:
如果wxapi这个文件夹放的位置不对,讲无法登录,微信sdk无法找到登录的Activity授权功能。然后在Manifest.xml里面加入:
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />
3. 全局初始化微信组件
全局初始化微信组件,当然是Application的onCreate里(当然Activity的onCreate也是可以的,为了全局使用微信api对象方便操作):
@Override
public void onCreate() {
super.onCreate();
// 初始化微信组件
initWeiXin();
}
public static IWXAPI sApi;
private void initWeiXin() {
sApi = WXEntryActivity.initWeiXin(this, AppConst.WEIXIN_APP_ID);
}
4. 请求授权登录,获取code
为了同一业务的单一原则我把微信相关的都统一封装到了wxapi包下和WXEntryActivity中:
// 实现IWXAPIEventHandler 接口,以便于微信事件处理的回调
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
private static final String WEIXIN_ACCESS_TOKEN_KEY = "wx_access_token_key";
private static final String WEIXIN_OPENID_KEY = "wx_openid_key";