搭友盟之便,创SocialShare

前言

    目前,常用的第三方分享途径有QQ、微信、微博、人人等...凑巧最近和盆友一起学习做项目,而项目需要通过第三方分享到第三方社交平台,如QQ、微博、微信等。通过查阅相关资料发现,现在各平台都有自己的官方第三方分享组件可用,官方文档也比较丰富,使用起来也比较方便。
    所以自己也就依葫芦画瓢,写个小Demo。

【友盟+】 社会化iOS组件—分享集成链接


1. 创建项目,然后填写应用基本信息,获取相关平台AppKey等信息

友盟


腾讯


新浪


这里写图片描述

2. 通过使用 Cocoapods 安装 SDK

pod 'UMengSocialCOM', '~> 5.2.1'

这里写图片描述

3. 添加系统需要的 framework 框架

  • Security.framework
  • libiconv.dylib
  • SystemConfiguration.framework
  • CoreGraphics.Framework
  • libsqlite3.dylib
  • CoreTelephony.framework
  • libstdc++.dylib

    这里写图片描述

4. 在 APPdelegate.m 文件中增加配置【友盟+】、需要的第三方平台APPID、Secret及Scheme URL

  • _ 在 APPdelegate.m 文件中增加配置【友盟+】、需要的第三方平台APPID、Secret_

  • 获取之前申请的相关Appkey及Secret

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //设置社会化组件appkey
    [UMSocialData setAppKey:@"你申请的友盟AppKey"];

    //设置微信AppId、appSecret,分享url
    [UMSocialWechatHandler setWXAppId:@"你申请的微信AppId" appSecret:@"你申请的微信AppSecret" url:nil];

    //设置手机QQ 的AppId,Appkey,和分享URL
        [UMSocialQQHandler setQQWithAppId:@"你申请的QQ_AppId" appKey:@"你申请的QQ_AppSecret" url:nil];

    //打开新浪微博的SSO开关,设置新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。
    [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"你申请的新浪微博AppKey"
                                              secret:@"你申请的新浪微博Secret"
                                         RedirectURL:@"你在微博开放平台设置的新浪微博回调地址"];

    return YES;
}

/**< 配置系统回调 */

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //调用其他SDK,例如支付宝SDK等
    }
    return result;
}
  • _ 配置Scheme URL_

  • 工程设置项 targets 栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes

平台URL scheme 的设置格式
新浪微博“wb”+新浪appkey,例如“wb126663232”
微信微信应用appId,例如“wxd9a39c7122aa6516”
QQ\QQ空间① “QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”(推荐) ② “tencent“+腾讯QQ互联应用Id,例如“tencent100424468”

这里写图片描述

5.以上配置完成后,在 ViewController.m文件的TouchesBegan方法中实现以下代码,然后 Command+R 编译

  • 注意导入 #import “UMSocial.h” 和遵守< UMSocialUIDelegate >协议
  //如果需要分享回调,请将delegate对象设置self,并实现下面的回调方法
    [UMSocialData defaultData].extConfig.title = @"分享的title";
    [UMSocialData defaultData].extConfig.qqData.url = @"http://baidu.com";
    [UMSocialSnsService presentSnsIconSheetView:self
                                         appKey:@"你申请的友盟AppKey"
                                      shareText:@"友盟社会化分享让您快速实现分享等社会化功能,http://umeng.com/social"
                                     shareImage:[UIImage imageNamed:@"icon"]
                                shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToSina,UMShareToQQ,UMShareToQzone]
                                       delegate:self];

这里写图片描述

编译成功后,在Touch方法中就阔以看到弹出的第三方控件

Touch方法

但是,此时的控制台打印了很多类似 canOpenUR 的提示信息(如下图)

这里写图片描述

刚开始看到这问题的时候无从下手,又去查阅相关资料发现——在iOS9以后openURL多了一个确认动作,如果使用 -canOpenURL: 方法,那么该方法所涉及到的 URL scheme 必须在”Info.plist”中将它们列为白名单(白名单上限50),否则不能使用。所以我们还需要在Plist文件中添加名为 LSApplicationQueriesSchemes 键值内容

这里写图片描述

_ 当添加plist文件完毕再运行时,若发现控制台还有类似于以下警告

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -980)

_ 则还需要在Plist文件中添加名为 App Transport Security Settings 键值内容_
这里写图片描述


按照以上流程设计,那么第三方分享基本就没什么问题了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值