在友盟分享的基础上集成微信登录

转载请以链接形式标明出处: 

http://blog.csdn.net/lxk_1993/article/details/52933357

本文出自:【lxk_1993的博客】; 


 刚开始做微信登录集成的时候,

项目已经集成了友盟分享,

有问iOS那边是怎么弄的,

是直接用友盟的还是微信的,

然后iOS那边说了一句用的是微信的,

然后我就默默地去微信开发平台去看文档去了,

说实话,

微信的文档真是差,

而且demo是很久之前的...

不知道多久没更新了,

我有看到一些代码的注释是12年写的....

按文档写了一些,

没成就直接不用微信的了,

直接去用友盟的....


友盟文档地址:http://dev.umeng.com/social/android/quick-integration


友盟的文档弄好需要集成的文件之后,

然后再包名下加个wxapi的包,

然后创建一个WXEntryActivity,

继承自WXCallbackActivity.


public class WXEntryActivity extends WXCallbackActivity {

}


然后再点击事件的时候调用下面的代码.

    private void loginwithWechat() {
        if (!MyApplication.api.isWXAppInstalled()) {
            showToast(getString(R.string.msg_no_wechat));
        } else {
            UMShareAPI mShareAPI = UMShareAPI.get(context);
            mShareAPI.doOauthVerify(getActivity(), SHARE_MEDIA.WEIXIN, umAuthListener);//授权
        }

    }

    private UMAuthListener umAuthListener = new UMAuthListener() {
        @Override
        public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
            //授权成功 然后获取用户信息
            UMShareAPI mShareAPI = UMShareAPI.get(context);
            mShareAPI.getPlatformInfo(getActivity(), SHARE_MEDIA.WEIXIN, umAuthListener1);
        }

        @Override
        public void onError(SHARE_MEDIA platform, int action, Throwable t) {
            Toast.makeText(context, "授权失败", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onCancel(SHARE_MEDIA platform, int action) {
            Toast.makeText(context, "授权取消", Toast.LENGTH_SHORT).show();
        }
    };


  private UMAuthListener umAuthListener1 = new UMAuthListener() {
        @Override
        public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {

            String json = "{\"openid\":\"" + map.get("openid") + "\","
                    + "\"nickname\":\"" + map.get("screen_name") + "\","
                    + "\"sex\":\"" + map.get("gender") + "\","
                    + "\"province\":\"" + map.get("province") + "\","
                    + "\"city\":\"" + map.get("city") + "\","
                    + "\"country\":\"" + map.get("country") + "\","
                    + "\"headimgur\":\"" + map.get("profile_image_url") + "\","
                    + "\"privilege\":[],"
                    + "\"unionid\":\"" + map.get("unionid") + "\"}";
            //再调用你们后台写的微信登录相关的接口,
        }

        @Override
        public void onError(SHARE_MEDIA platform, int action, Throwable t) {
            Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onCancel(SHARE_MEDIA platform, int action) {
            Toast.makeText(context, "取消获取用户信息", Toast.LENGTH_SHORT).show();
        }
    };


话说为什么友盟获取到用户的基本信息之后,

存到map中的key并不是微信返回的字段,

所以就有了上面那个json字符串拼接的代码...

上面代码写得比较烂,

可以再自行修改下.


有问题请留言.

如果你喜欢我的博客,请关注我大笑.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值