U-Share实现微信授权登录功能

1.背景:

U-Share是Umeng的社会化组件,里面集成了QQ、新浪、微信等开放平台的分享、授权功能等。

2.U-Share SDK下载地址:[http://dev.umeng.com/social/android/sdk-download?spm=0.0.0.0.Uvltsh

3.实现功能:

以我的demo(WeiXinDemo)为例子:
必须事先获取到的:
Umeng平台对应的Umengkey。
微信开放平台上对应的AppID、AppSecret。
在项目中导入jar包,拷贝SDK中提供的demo下的res到自己的项目中,将对应的Manifest.xml文件下的权限和注册信息拷贝到自己项目中。


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中有一个WXEntryActivity,它必须放在包命.wxapi下:


2.png

在manifest.xml中配置UmengKey

        <meta-data
            android:name="UMENG_APPKEY"
            android:value=Umengkey>

在onCreate()中设置微信平台该应用的相关信息:

  PlatformConfig.setWeixin(AppID, AppSecret);

初始化UMShareAPI和SHARE_MEDIA:

 private UMShareAPI mShareAPI = UMShareAPI.get(this);
 private SHARE_MEDIA platform = SHARE_MEDIA.WEIXIN;

授权登录:

/**
   * 如果没有安装微信
   */
  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 ===");
     }
    });

取消授权:

  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);
 }

这样微信的授权登录功能就实现完成。

_本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 ) _
转载自【宝宝巴士SuperDo团队】原文链接: http://www.jianshu.com/p/3e6f3b31fa41

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容