iOS友盟分享功能开发

一、前期准备工作

1、注册友盟账号获取AppKey;

2、注册各分享途径账号:(1)QQ->到腾讯开放平台注册,获取AppKey;(2)微信->到微信开放平台注册,获取AppKey和

appSecret;(3)其他途径,到各自开放平台注册。

3、集成和配置各类文件,参考友盟官方网站

4、AppDelegate.h里:(1)初始化并设置appKey:

-(void)setUM_SocialAppKeys{

    // 设置友盟的Appkey;

    [[UMSocialManager defaultManager] setUmSocialAppkey:@"5a9371838f4a9d6c260001c0"];

    // 开启日子打印

    [[UMSocialManager defaultManager] openLog:true];

    /* 设置微信的appKey和appSecret */

    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"wxdc1e388c3822c80b" appSecret:@"3baf1193c85774b3fd9d18447d76cab0" redirectURL:@"http://mobile.umeng.com/social"];

    /* 设置分享到QQ互联的appID

     * U-Share SDK为了兼容大部分平台命名,统一用appKey和appSecret进行参数设置,而QQ平台仅需将appID作为U-Share的appKey参数传进即可。

     */

    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:@"1106573435"/*设置QQ平台的appID*/  appSecret:nil redirectURL:@"http://mobile.umeng.com/social"];

// 列举QQ微信,设置方法类似

}

(2)回调

// 设置系统回调  支持目前所有iOS系统

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

{

    BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];

    if (!result) {

        // 其他如支付等SDK的回调

    }

    return result;

}


二、使用分享功能

1、检测应用是否安装:[[UMSocialManager defaultManager] isInstall:1]

2、设置指定分享途径:

NSArray * platformTypes = @[@1,@2,@4,@5];

[UMSocialUIManager setPreDefinePlatforms:platformTypes];

3、调用友盟UI控件:

[UMSocialUIManage showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {

        // 根据获取的platformType确定所选平台进行下一步操作

        [self shareWebPageToPlatformType:platformType];

}];

4、分享网站:UMSocialMessageObject对象可以是文本、图片、网站等等

- (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType

{

    //创建分享消息对象

    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];

    //创建网页内容对象

    NSString* thumbURL = @"https://mobile.umeng.com/images/pic/home/social/img-1.png";

    UIImage * iamge = [UIImage imageNamed:@"share"];

    UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"欢迎使用Share" descr:@"欢迎使用Share" thumImage:iamge];

    //设置网页地址

    shareObject.webpageUrl = @"http://mobile.umeng.com/social";

    //分享消息对象设置分享内容对象

    messageObject.shareObject = shareObject;

    //调用分享接口

    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {

        if (error) {

            UMSocialLogInfo(@"************Share fail with error %@*********",error);

        }else{

            if ([data isKindOfClass:[UMSocialShareResponse class]]) {

                UMSocialShareResponse *resp = data;

                //分享结果消息

                UMSocialLogInfo(@"response message is %@",resp.message);

                //第三方原始返回的数据

                UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);

            }else{

                UMSocialLogInfo(@"response data is %@",data);

            }

        }

    }];

}


三、使用第三方登录功能

[[UMSocialManager defaultManager}getUserInfoWithPlatform:UMSocialPlatformType_WechatSession currentViewController:nil completion:^(id result, NSError *error) {

            if (error) {

            } else {

                UMSocialUserInfoResponse *resp = result;

                // 授权信息

                NSLog(@"Wechat uid: %@", resp.uid);

                NSLog(@"Wechat openid: %@", resp.openid);

                NSLog(@"Wechat unionid: %@", resp.unionId);

                NSLog(@"Wechat accessToken: %@", resp.accessToken);

                NSLog(@"Wechat refreshToken: %@", resp.refreshToken);

                NSLog(@"Wechat expiration: %@", resp.expiration);

                // 用户信息

                NSLog(@"Wechat name: %@", resp.name);

                NSLog(@"Wechat iconurl: %@", resp.iconurl);

                NSLog(@"Wechat gender: %@", resp.unionGender);

                // 第三方平台SDK源数据

                NSLog(@"Wechat originalResponse: %@", resp.originalResponse);

            }

        }];

    [[UMSocialManager defaultManager] getUserInfoWithPlatform:UMSocialPlatformType_QQ currentViewController:nil completion:^(id result, NSError *error) {

        if (error) {

        } else {

            UMSocialUserInfoResponse *resp = result;

            // 授权信息

            NSLog(@"QQ uid: %@", resp.uid);

            NSLog(@"QQ openid: %@", resp.openid);

            NSLog(@"QQ unionid: %@", resp.unionId);

            NSLog(@"QQ accessToken: %@", resp.accessToken);

            NSLog(@"QQ expiration: %@", resp.expiration);

            // 用户信息

            NSLog(@"QQ name: %@", resp.name);

            NSLog(@"QQ iconurl: %@", resp.iconurl);

            NSLog(@"QQ gender: %@", resp.unionGender);

            // 第三方平台SDK源数据

            NSLog(@"QQ originalResponse: %@", resp.originalResponse);

        }

    }];









猜你喜欢

转载自blog.csdn.net/qq_37191821/article/details/80889325