从网站:http://bbs.umeng.com/forum.php?mod=viewthread&tid=5498&highlight=%E5%BE%AE%E4%BF%A1%E6%8E%88%E6%9D%83 整理而来。
android 微信登录实现方法
添加
[AppleScript]
纯文本查看 复制代码
1
2
3
4
5
6
|
/
/
wx
967
daebe
835
fbeac是你在微信开发平台注册应用的AppID
,
这里需要替换成你注册的AppID
String appID
=
"wx967daebe835fbeac"
;
String appSecret
=
"5fa9e68ca3970e87a1f83e563c8dcbce"
;
/
/
添加微信平台
UMWXHandler wxHandler
=
new
UMWXHandler
(
getActivity
(
)
,
appId
,
appSecret
)
;
wxHandler.addToSocialSDK
(
)
;
|
在微信登录按钮中实现下面的方法,点击按钮则弹出微信登录页面
[Java]
纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
mController.doOauthVerify(MainActivity.
this
, SHARE_MEDIA.WEIXIN,
new
UMAuthListener() {
@Override
public
void
onError(SocializeException e, SHARE_MEDIA platform) {
}
@Override
public
void
onComplete(Bundle value, SHARE_MEDIA platform) {
if
(value !=
null
&& !TextUtils.isEmpty(value.getString(
"uid"
))) {
Toast.makeText(MainActivity.
this
,
"授权成功."
, Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(MainActivity.
this
,
"授权失败"
, Toast.LENGTH_SHORT).show();
}
}
@Override
public
void
onCancel(SHARE_MEDIA platform) {}
@Override
public
void
onStart(SHARE_MEDIA platform) {}
});
|
获取已授权平台的用户信息,accesstoken等信息
[Java]
纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
|
mController.getPlatformInfo(MainActivity.
this
, SHARE_MEDIA.WEIXIN,
new
UMDataListener() {
@Override
public
void
onStart() {
Toast.makeText(MainActivity.
this
,
"获取平台数据开始..."
, Toast.LENGTH_SHORT).show();
}
@Override
public
void
onComplete(
int
status, Map<String, Object> info) {
if
(status ==
200
&& info !=
null
){
StringBuilder sb =
new
StringBuilder();
Set<String> keys = info.keySet();
for
(String key : keys){
sb.append(key+
"="
+info.get(key).toString()+
"\r\n"
);
}
Log.d(
"TestData"
,sb.toString());
}
else
{
Log.d(
"TestData"
,
"发生错误:"
+status);
}
}
});
|
注意:微信登录非常严格,比分享有过之而无不及,打包,签名,回调,权限申请缺一不可
1.要取得微信登陆权限
2.要打包测试
3.要打包生成apk,再生成签名填写回微信开放平台
4.加好上面的授权代码
5.微信的回调一定要保证路径没有错
activity里内容和我们文档要求一致(绝不可以私自改动)
做好以上几点才行
回调
在AndroidManifest.xml中下注册下面的回调Activity, 直接复制到Android manifest XML 即可,千万不要进行修改
[Java]
纯文本查看 复制代码
1
2
3
4
5
6
|
<activity
android:name=
".wxapi.WXEntryActivity"
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
android:configChanges=
"keyboardHidden|orientation|screenSize"
android:exported=
"true"
android:screenOrientation=
"portrait"
/>
|
将SDK包weixin目录下的wxapi文件夹拷贝到您的工程的包目录下, 然后修改WXEntryActivity的完整路径即可。 例如social_sdk_example的包名为com.umeng.soexample,因此将wxapi文件夹拷贝到com.umeng.soexample下,最终WXEntryActivity的 完整路径为com.umeng.soexample.wxapi.WXEntryActivity。
注册微信回调代码:
[Java]
纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
mSnsPostListener =
new
SnsPostListener() {
@Override
public
void
onStart() {
}
@Override
public
void
onComplete(SHARE_MEDIA platform,
int
stCode,
SocializeEntity entity) {
if
(stCode ==
200
) {
Toast.makeText(MainActivity.
this
,
"分享成功"
, Toast.LENGTH_SHORT)
.show();
}
else
{
Toast.makeText(MainActivity.
this
,
"分享失败 : error code : "
+ stCode, Toast.LENGTH_SHORT)
.show();
}
}
};
|