微信第三方登录(Android 实现)
2016-09-13 17:28
681 查看
1.开发准备工作
1.参考Android 接入指南
1.申请你的AppID2.下载微信终端开发工具包
根据app包名生成ap
2.代码实践
1.判定客户端是否装有微信,没有则提醒需要安装微信
private void loginWeixin() { if (!isAvilable(LoginActivity.this, "com.tencent.mm")) { DialogHelper.createInfoDialog(LoginActivity.this, "还未安装微信客户端哟.", null, "知道了", new InfoDialog.IButtonInterface() { @Override public void clickSureButton() { } @Override public void clickCannelButton() { } }); return; } WXEntryActivity.isFirst = false; showProgressDialogForRequest("正在登录中..."); Intent intent = new Intent(LoginActivity.this, WXEntryActivity.class); startActivity(intent); }
2.AndroidManifest 里面通过meta-data方式 配置appid appkey,这两个值是通过微信开发平台添加应用生成的。代码通过获取metadata获取这两个值。
<meta-data android:name="weixinappid" android:value="xxxxxx" /> <meta-data android:name="weixinappkey" android:value="xxxxx" />
try { ApplicationInfo info = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); String appidtemp = (String) info.metaData.get("weixinappid"); String appkeytemp = (String) info.metaData.get("weixinappkey"); if (appidtemp != null && !appidtemp.trim().equals("")) { APP_ID = appidtemp; } if (appkeytemp != null && !appkeytemp.trim().equals("")) { APP_KEY = appkeytemp; } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); Toast.makeText(context, "微信APP_ID或APP_KEY配置有问题", Toast.LENGTH_LONG) .show(); }
3.引入微信登录相关SDK到项目的lib文件夹中,就一个文件:
libammsdk.jar4.注册app,初始化回调。
private void initWeixinSDK(Activity context) { api = WXAPIFactory.createWXAPI(context, APP_ID, true); api.registerApp(APP_ID); initWeixinIntent(context.getIntent(), WeiXinHelper.this); } public void initWeixinIntent(Intent intent, IWXAPIEventHandler wxapEventHandler) { if (api != null) { api.handleIntent(intent, wxapEventHandler); } }
5.定义个不显示的activity 进行微信申请用户授权,和接收返回操作。
WXEntryActivity 参考微信开放平台提供的demo<activity android:name=".wxapi.WXEntryActivity" android:exported="true" android:label="@string/app_name" android:launchMode="singleTask" android:theme="@style/transparent"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="sdksample" /> </intent-filter> </activity>
6. 申请用户授权
SendAuth.Req req = new SendAuth.Req(); //授权读取用户信息 req.scope = "snsapi_userinfo"; //自定义信息 req.state = "wechat_sdk_demo_test"; //向微信发送请求 api.sendReq(req);
7.在onResp方法中获取到code,然后通过下面的接口获取到token和openid:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_codeopenid可以作为用户的唯一标识,将openid保存下来,就可以实现登录状态的检查了。
8.如果需要获取用户的信息,例如昵称,头像,可以使用下面的接口:
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID3.参考链接
http://my.oschina.net/crazymus/blog/521164https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=85bd15629adce47595c611da7ea0f157b957094a&lang=zh_CN
相关文章推荐
- 微信第三方登录Android实现代码
- Android 实现QQ、微信、新浪微博和百度第三方登录
- Android实现使用微信登录第三方APP的方法
- 关于使用微信登录第三方APP的实现(Android版)
- 关于使用微信登录第三方APP的实现(Android版)
- Android实现使用微信登录第三方APP的方法
- Android App实现第三方微信登录
- android 简单实现,微信第三方登录
- Android通过微信实现第三方登录并使用OKHttp获得Token及源码下载
- android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法
- Android开发接入第三方原生SDK实现微信登录
- android_实现微信第三方登录吊起授权遇到无法吊起页面问题
- 关于使用微信登录第三方APP的实现(Android版)
- 关于使用微信登录第三方APP的实现(Android版)
- 微信第三方登录Android实现
- Android App实现第三方微信登录
- Android 使用shareSDK进行第三方登录失败解决方法(微信,微博,qq)
- Android 实现QQ第三方登录
- 【Android实战】实现新浪微博第三方登录获取用户信息
- Android 微信第三方App登录