zoukankan      html  css  js  c++  java
  • 友盟iOS微信登陆没有回调的原因

    1、在友盟文档中这样说:

    链接

    7.4  微信登录
    添加配置文件参考文档:添加微信及朋友圈,添加相关库文件,配置URL schemes及添加系统回调
    
    注意微信登录必须先在微信开放平台申请微信登录权限
    在你的程序APPdelegate入口方法添加下面的代码
    
      #import "UMSocialWechatHandler.h"
        //设置微信AppId、appSecret,分享url
        [UMSocialWechatHandler setWXAppId:@"wxd930ea5d5a258f4f" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@"http://www.umeng.com/social"];
    
    在微信登录按钮中实现下面的方法
    
      UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToWechatSession];
    
            snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
    
                if (response.responseCode == UMSResponseCodeSuccess) {
    
                    UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary]valueForKey:UMShareToWechatSession];
    
                    NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);
    
                }
    
     });
    
    在授权完成后调用获取用户信息的方法
    
    //得到的数据在回调Block对象形参respone的data属性
    [[UMSocialDataService defaultDataService] requestSnsInformation:UMShareToWechatsession  completion:^(UMSocialResponseEntity *response){
            NSLog(@"SnsInformation is %@",response.data);
        }];

    2、实践使用时:

    #pragma mark - 微信登录
    - (void)loginViewClickedWeiXiButton{
    
        [UMSocialData setAppKey:@"55bb141a67e58e9f80001801"];
        [UMSocialWechatHandler setWXAppId:@"wx2802d4e49f68996f" appSecret:@"f1bf8a16c5f87570ab07782d3e0ab223" url:@"http://www.umeng.com/social"];
        UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToWechatSession];
        snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
            //  获取微博用户名、uid、token等
            if (response.responseCode == UMSResponseCodeSuccess) {
                 UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary]valueForKey:UMShareToWechatSession];
                NSLog(@"username is %@, uid is %@, token is %@ iconUrl is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);
            }
        });
    
    }

    3、【坑在这里】没有回调时因为要在应用代理方法中增加:

    //sdk
    #import "UMSocialSnsService.h"
    
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
    {
        return  [UMSocialSnsService handleOpenURL:url wxApiDelegate:nil];
    }
    
    - (void)applicationDidBecomeActive:(UIApplication *)application
    {
        [UMSocialSnsService  applicationDidBecomeActive];
    }

    最后说明

    • 微信的openid对应友盟里叫usid

    下面是授权成功的回调数据:

    - UMSocial:  makeRequestWithPath is /share/token/53290df956240b6b4a0084b3/, parameters is {
        "access_token" = "OezXcEiiBSKSxW0eoylIeJDUKD6z6dmr42JANLPjNN56WRFnd-vVJO37ma0gCpKY1v5q8EVEMwdQqzvXoFFpe1jQXUzjqukub9-228J8sjvugvVVQYvzkhyvAgItvkYmMIGD_cE2hAWUm44_qCB-oQ";
        ak = 53290df956240b6b4a0084b3;
        de = "iPhone7,1";
        dt = 1438857527939;
        ek = 4b37315fd0421b0b3a682a4a5e4487e9;
        en = WiFi;
        "expires_in" = 7199;
        mac = "02:00:00:00:00:00";
        openid = oyAaTjrJMAb3qfCbyDRp3h0NKyew;
        openudid = 147ad485c3b80ffd54bfc8689c2d7db1ed88994b;
        os = iOS;
        pcv = "2.0";
        "refresh_token" = "OezXcEiiBSKSxW0eoylIeJDUKD6z6dmr42JANLPjNN56WRFnd-vVJO37ma0gCpKYHXgyDeQ4Xqm60G-omrGp2u-KbIy7zTP5gV5dnw3RVN-GzkjY8gCWIMC3_cCHcflH6IPexy2c-k46gGG0M07p6g";
        sdkv = "4.2.3";
        to = wxsession;
        tp = 0;
        uid = 462ae0edb57d53dfd2affb5e4ae36ad;
        usid = oyAaTjrJMAb3qfCbyDRp3h0NKyew;
    } 
    [18:38:48.197( 2055)] - UMSocial:  actionType is 15 , received json Dic is {
        data =     {
        };
        msg = "no error";
        st = 200;
    }



    文/iHTCboy(简书作者)
    原文链接:http://www.jianshu.com/p/177e3309272a
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    Could A New Linux Base For Tablets/Smartphones Succeed In 2017?
    使用libhybris,glibc和bionic共存时的TLS冲突的问题
    6 Open Source Mobile OS Alternatives To Android in 2018
    Using MultiROM
    GPU drivers are written by the GPU IP vendors and they only provide Android drivers
    Jolla Brings Wayland Atop Android GPU Drivers
    How to Use Libhybris and Android GPU Libraries with Mer (Linux) on the Cubieboard
    闲聊Libhybris
    【ARM-Linux开发】wayland和weston的介绍
    Wayland and X.org problem : Why not following the Android Solution ?
  • 原文地址:https://www.cnblogs.com/Hakim/p/5360011.html
Copyright © 2011-2022 走看看