1.背景:
U-Share是Umeng的社會(huì)化組件,里面集成了QQ、新浪、微信等開放平臺(tái)的分享、授權(quán)功能等。
2.U-Share SDK下載地址:[http://dev.umeng.com/social/android/sdk-download?spm=0.0.0.0.Uvltsh]
3.實(shí)現(xiàn)功能:
以我的demo(WeiXinDemo)為例子:
必須事先獲取到的:
Umeng平臺(tái)對(duì)應(yīng)的Umengkey。
微信開放平臺(tái)上對(duì)應(yīng)的AppID、AppSecret。
在項(xiàng)目中導(dǎo)入jar包,拷貝SDK中提供的demo下的res到自己的項(xiàng)目中,將對(duì)應(yīng)的Manifest.xml文件下的權(quán)限和注冊(cè)信息拷貝到自己項(xiàng)目中。

1.png
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.umeng.socialize.editorpage.ShareActivity"
android:excludeFromRecents="true"
android:theme="@style/Theme.UMDefault" />
這其中要注意的是demo中有一個(gè)WXEntryActivity,它必須放在包命.wxapi下:

2.png
在manifest.xml中配置UmengKey
<meta-data
android:name="UMENG_APPKEY"
android:value=Umengkey>
在onCreate()中設(shè)置微信平臺(tái)該應(yīng)用的相關(guān)信息:
PlatformConfig.setWeixin(AppID, AppSecret);
初始化UMShareAPI和SHARE_MEDIA:
private UMShareAPI mShareAPI = UMShareAPI.get(this);
private SHARE_MEDIA platform = SHARE_MEDIA.WEIXIN;
授權(quán)登錄:
/**
* 如果沒有安裝微信
*/
if (!mShareAPI.isInstall(this, SHARE_MEDIA.WEIXIN)) {
return;
}
mShareAPI.doOauthVerify(MainActivity.this, platform,
new UMAuthListener() {
@Override
public void onError(SHARE_MEDIA platform, int arg1,
Throwable arg2) {
Log.e("weixin auth", "=== auth onError ===");
}
@Override
public void onComplete(SHARE_MEDIA platform, int arg1,
Map<String, String> arg2) {
Log.e("weixin auth", "=== auth onComplete ===");
}
@Override
public void onCancel(SHARE_MEDIA platform, int arg1) {
Log.e("weixin auth", "=== auth onCancel ===");
}
});
取消授權(quán):
mShareAPI.deleteOauth(MainActivity.this, platform,
new UMAuthListener() {
@Override
public void onError(SHARE_MEDIA platform, int arg1,
Throwable arg2) {
Log.e("weixin deleteAuth", "=== deleteAuth onError ===");
}
@Override
public void onComplete(SHARE_MEDIA platform, int arg1,
Map<String, String> arg2) {
Log.e("weixin deleteAuth","=== deleteAuth onComplete ===");
}
@Override
public void onCancel(SHARE_MEDIA platform, int arg1) {
Log.e("weixin deleteAuth","=== deleteAuth onCancel ===");
}
});
在官方文檔中有提到必須重寫onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 需要重寫onActivityResult
mShareAPI.onActivityResult(requestCode, resultCode, data);
}
這樣微信的授權(quán)登錄功能就實(shí)現(xiàn)完成。
_本站文章為 寶寶巴士 SD.Team 原創(chuàng),轉(zhuǎn)載務(wù)必在明顯處注明:(作者官方網(wǎng)站: 寶寶巴士 ) _
轉(zhuǎn)載自【寶寶巴士SuperDo團(tuán)隊(duì)】原文鏈接: http://www.itdecent.cn/p/3e6f3b31fa41