U-Share實(shí)現(xiàn)微信授權(quán)登錄功能

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,190評(píng)論 25 708
  • 獲取SDK 下載SDK操作流程 下載SDK最新版 如下圖所示: SDK組件說明 根據(jù)需要,選擇自己需要的平臺(tái)、精簡(jiǎn)...
    極簡(jiǎn)coder閱讀 2,340評(píng)論 0 0
  • 產(chǎn)品概述 Android U-share 6.0sdk是在5.0+的基礎(chǔ)上做了進(jìn)一步的優(yōu)化,降低了包的大小,對(duì)于三...
    AiPuff閱讀 7,265評(píng)論 1 10
  • 最近兩天都在學(xué)習(xí)友盟分享和登錄,因?yàn)樽约鹤鳛橐幻率珠_發(fā)者第一次接觸友盟,并且友盟分享的SDK在6.0后與前面的版...
    鯨魚座的男孩閱讀 7,055評(píng)論 0 32
  • 今天,最疼愛的表妹結(jié)婚了! 媽媽說,我就喜歡她這樣,敢愛敢恨! 她很能干,讀書的時(shí)候我是家長(zhǎng)標(biāo)榜的榜樣。大學(xué)后,讀...
    飛花_毛毛閱讀 270評(píng)論 0 0

友情鏈接更多精彩內(nèi)容