【ThirdParty】iOS-友盟分享

Demo:(XSLC项目,未上线)
要使用友盟,现在友盟网站中添加新的应用,获得此应用的唯一Appkey

官方文档:http://dev.umeng.com/social/ios/quick-integration#1_2

1.Cocoapods集成SDK

将需要的写入Podfile文件,然后在终端中执行"pod install"


【ThirdParty】iOS-友盟分享_第1张图片

但是执行完终端出现提示

[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use T

是因为Podfile 的内容语法格式有问题,原来我是复制粘贴的,现在自己敲一遍就行

【ThirdParty】iOS-友盟分享_第2张图片

添加完后发现,虽然导入了8个依赖库,但只会安装一个库,剩下7个含在里面

【ThirdParty】iOS-友盟分享_第3张图片
注意:

iOS使用cocoaPods集成友盟分享后,没有做其他任何操作,模拟器运行无问题,但是一真机运行就报错,Xcode版本是Version 8.3.2 (8E2002)

【ThirdParty】iOS-友盟分享_第4张图片

尝试过的解决方案
1.将Build settings->Linking->Other Linker Flags属性修改为-all_load 或者 -ObjC 无效
2.将Bitcode改为NO,改完也是无效,需要重启Xcode即可解决问题

【ThirdParty】iOS-友盟分享_第5张图片
2.第三方平台配置
1.配置SSO白名单,其中我添加了微信,QQ,支付宝

如果你的应用使用了如SSO授权登录或跳转到第三方分享功能,在iOS9/10下就需要增加一个可跳转的白名单,否则将在SDK判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。
添加方法如下
在Info里面添加LSApplicationQueriesSchemes

【ThirdParty】iOS-友盟分享_第6张图片
2.配置URL Scheme

URL Scheme是通过系统找到并跳转对应app的一类设置
通过向项目中的info.plist文件中加入URL types可使用第三方平台所注册的appkey信息向系统注册你的app,当跳转到第三方应用授权或分享后,可直接跳转回你的app。

【ThirdParty】iOS-友盟分享_第7张图片
【ThirdParty】iOS-友盟分享_第8张图片
3.初始化U-Share及第三方平台后,进行分享

首先去友盟添加你的应用,获得Appkey

【ThirdParty】iOS-友盟分享_第9张图片

下面是代码部分

  • 1.在AppDelegate中初始化友盟及第三方平台
#import 
【ThirdParty】iOS-友盟分享_第10张图片

其中

【ThirdParty】iOS-友盟分享_第11张图片
  • 2.在点击页面某一按钮的时候,设置分享面板的显示顺序并弹出分享面板,不设置顺序的话会有自己的默认顺序,设置后会按照你设置的顺序来
【ThirdParty】iOS-友盟分享_第12张图片
  • 3.分享
    在上面的2中的回调中进行分享,可以像2一样分平台去分享不同的内容,也可以全部进行一样的内容分享,但因为我只添加了微信,所以就算控制面板上显示了其他第三方,也只有微信和短信可以直接分享
#import 
- (void)shareToWeiXin:(UMSocialPlatformType) platformType
{
    //网页分享
    //创建分享消息对象
    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
    //创建网页内容对象(带了图片)
    UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"大倩倩的分享" descr:@"关于明天四点下班的通知" thumImage:[UIImage imageNamed:@"WebOfBanner_InvitationCode"]];
    //设置你要分享出去的网页地址
    shareObject.webpageUrl = @"http://www.baidu.com";
    //分享消息对象设置分享内容对象
    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);
            }
        }
    }];
}
【ThirdParty】iOS-友盟分享_第13张图片
【ThirdParty】iOS-友盟分享_第14张图片
4.其他的分享样式可参见友盟SDK

你可能感兴趣的:(【ThirdParty】iOS-友盟分享)