最近因为项目原因,需要用到分享的功能,找了几家公司的SDK最后选择用友盟实现分享,官方的SDK社会化组件已经更新到了SDK6.1.0。用swift3.0实现发现了一些坑和问题。在这里简单的贴一下。
首先,先做准备工作
先注册友盟的开发者账号,下载最新版本SDK,可以选择你需要分享的平台,我这里选择了微信,qq,和新浪微博。分享集成-社会化iOS组件
然后在友盟注册你的工程 获取一个APPKEY!!
接下来进行集成,打开你的工程。我用的是手动集成,首先把下载好的SDK导入项目中
直接拖拽到工程里就可以了:
然后在工程配置里添加-ObjC:
导入系统依赖库:
将这些依赖库导入到工程里,我这里导入的是微信,qq,新浪微博(需要其他的平台可以自己导入依赖库):
接下来就是配置各平台的URL Scheme了,URL Scheme是通过系统找到并跳转对应app的一类设置,通过向项目中的info.plist文件中加入URL types可使用第三方平台所注册的appkey信息向系统注册你的app,当跳转到第三方应用授权或分享后,可直接跳转回你的app。
首先,我们先去注册一下,我只用微信的作为例子,剩下的平台大同小异,你们自己去配置吧
我们先进微信开发者平台,申请账号,注册工程,获取AppID和AppSecret!!AppSecret这个东西一定要记住,一定!!!微信审核的时候会有一定的时间,不长!
注册完之后把AppId拿出来用来配置URL Scheme,这个东西可以在工程面板里面配置,也可以在info.plist文件里面配置。我选择的是在工程面板里面配置
因为第三方的库使oc写的,所以要写一个桥接文件,并且引入头文件:
现在所有的集成就都结束了,command+b!!!试一下没有报错就说明你集成好了,我们就可以开始写代码了!!!
进到AppDelegate.swift的文件中,开始写代码,首先我们先初始化一下各个平台,并验证一下友盟的appkey,这里我只初始化了微信的平台,其他的平台类似只是更改一下UMSocialPlatformType.wechatSession这句话就可以了,然后把刚刚注册的appKey和appSecret填写上去,最后分享一个网址!
初始化个大平台之后我们就要开始设置系统的回调,回调很重要用回调的信息来判断是否分享成功,let result = UMSocialManager.default().handleOpen(url)不写这句就没有办法在viewcontroller里面处理回调的信息,别忘了调用函数:
写到这里appdelegate里的代码就写完了,我们回到viewcontroller里面,来写一个按钮使用系统样式来分享:
然后就可以在btnClick()函数里面写分享的代码了
写到这里基本的套路就算写好了,最后设置一下白名单就可以了,白名单在info.plist里面设置不废话上图: