ShareSDK iOS SDK 集成指南 |
您所在的位置:网站首页 › sdk的方式 › ShareSDK iOS SDK 集成指南 |
温馨提示: 各平台的右边有个问号,将鼠标放置上去会弹出该平台的简单说明 选中所需要的平台后,点击“下载”按钮,就会下载好SDK 下载下来的SDK结构 SDK目录结构说明 SDK: Required: MOBFoundation.framework (基础工具库) ShareSDK: ShareSDK.framework (主业务实现) Support: Required: ShareSDK.bundle (ShareSDK资源文件) ShareSDKConnector.framework(v4.2.0版本后已废弃) PlatformConnector: ... (各个平台独立逻辑依赖库,只需要集成需要的平台即可) PlatformSDK: ... (各个平台的SDK文件,不集成默认走去SDK业务逻辑,目前支持大部分主流 平台,如QQ 微博 微信等) Optional:(可选) ShareSDKUI.bundle (分享UI的资源文件) ShareSDKUI.framework (分享UI库) ShareSDKConfigFile.framework(xml配置文件形式分享依赖库) ShareSDKConfigFile.bundle (xml配置文件形式分享资源文件) ShareSDKExtension.framework(功能的扩展框架插件。(第三方平台检测、 一键分享、截屏分享、摇一摇分享等相关功能) ShareSDKLink.framework(闭环分享库) 注意:导入的时候,需要将整个SDK资源文件导入到项目里 手动导入SDK 将上面获取到的SDK,直接将整个SDK资源文件拖进项目里,如下图: 并且勾选以下3个选项 在点击Finish,完成导入。 添加依赖库 点击“+”号,并在弹框里输入以下依赖库,进行添加 必要依赖库: libc++.tbd libz.tbd libsqlite3.tbd社交平台依赖库(根据自己需求添加): 苹果登录依赖库: AuthenticationServices.frameworkFacebook依赖库: AuthenticationServices.framework SafariServices.framework Accelerate.framework新浪微博 ImageIO.framework Photos.framework美拍 AssetsLibrary.frameworkXcode配置 (1)在项目的Build Settings中的Other Linker Flags双击添加”-ObjC” ,注意大小写 CocoaPods集成 请参考 Pod集成 配置MobTech的appkey和serect 配置ShareSDK的AppKey和AppSecret,键分别为 MOBAppKey 和 MOBAppSecret ,值为之前在MobTech官网开发者后台申请的appkey和appSecret(注意: 配置之后保存好,配置好后看项目的Info选项里有没) API接口回传用户隐私授权结果(uploadPrivacyPermissionStatus) 为保证您的App在集成MobSDK之后能够满足工信部相关合规要求,您应确保App安装首次冷启动且取得用户阅读您《隐私政策》授权之后,调用Mob提交到的隐私协议回传函数uploadPrivacyPermissionStatus回传隐私协议授权结果。 反之,如果用户不同意您App《隐私政策》授权,则不能调用uploadPrivacyPermissionStatus回传隐私协议授权结果。 相关隐私声明请参考链接合规指南 /** 上传隐私协议授权状态 @param isAgree 是否同意(用户授权后的结果) @param OnResult 执行回调结果,可为nil (注意业务逻辑不要依赖于这个success结果,建议业务逻辑在调用这个接口之后来写) */ + (void)uploadPrivacyPermissionStatus:(BOOL)isAgree onResult:(void (^_Nullable)(BOOL success))handler; 示例代码 调用位置开发者可以自己指定,只需在使用SDK功能之前调用即可。 ocswift #import [MobSDK uploadPrivacyPermissionStatus:YES onResult:^(BOOL success) { }]; 导入头文件并进行第三方平台初始化(registPlatforms) 通常都是启动的时候在 application:didFinishLaunchingWithOptions:中添加初始化方法,也可保证注册在ShareSDK的业务执行之前即可。 这里提供几个主平台的初始化,其他平台可以参考demo里的MOBShareSDKHelper.m文件调用 点击这里 /** ShareSDK 平台注册方法 @param importHandler 用于设置各平台注册信息,也可在mob管理后台进行注册 */ + (void)registPlatforms:(void(^)(SSDKRegister *platformsRegister))importHandler; 示例代码 ocswift #import - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) { [platformsRegister setupQQWithAppId:@"100371282" appkey:@"aed9b0303e3ed1e27bae87c33761161d" enableUniversalLink:YES universalLink:@"https://70imc.share2dlink.com/qq_conn/100371282"]; //更新到4.3.3或者以上版本,微信初始化需要使用以下初始化 [platformsRegister setupWeChatWithAppId:@"wx617c77c82218ea2c" appSecret:@"c7253e5289986cf4c4c74d1ccc185fb1" universalLink:@"https://70imc.share2dlink.com/"]; //新浪 [platformsRegister setupSinaWeiboWithAppkey:@"568898243" appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3" redirectUrl: @"http://www.sharesdk.cn" universalLink:@"https://70imc.share2dlink.com/"]; }]; return YES; } 分享(showShareActionSheet) 在项目需要分享的按钮事件里加以下接口: 注意:根据自己的需求调用接口 弹出菜单分享 /** * 设置分享参数 * @param text 文本 * @param images 图片集合,传入参数可以为单张图片信息,也可以为一个NSArray,数组元素可以为UIImage、NSString(图片路径)、NSURL(图片路径)、SSDKImage。如: @"http://www.mob.com/images/logo_black.png" 或 @[@"http://www.mob.com/images/logo_black.png"] * @param url 网页路径/应用路径 * @param title 标题 * @param type 分享类型 */ - (void)SSDKSetupShareParamsByText:(NSString *)text images:(id)images url:(NSURL *)url title:(NSString *)title type:(SSDKContentType)type; /** 显示分享菜单 @param view 要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图 @param items 菜单项,如果传入nil,则显示已集成的平台列表 @param shareParams 分享内容参数 @param configuration 分享菜单的设置 @param stateChangedHandler 分享状态变更事件 @return 分享菜单控制器 */ + (id)showShareActionSheet:(UIView *)view customItems:(NSArray *)items shareParams:(NSMutableDictionary *)shareParams sheetConfiguration:(SSUIShareSheetConfiguration *)configuration onStateChanged:(SSUIShareStateChangedHandler)stateChangedHandler; 示例代码 ocswift #import #import NSMutableDictionary * params = [NSMutableDictionary dictionary]; [params SSDKSetupShareParamsByText:@"test" images:@"http://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png" url:[NSURL URLWithString:@"http://www.mob.com/"] title:@"title" type:SSDKContentTypeAuto]; [ShareSDK showShareActionSheet:nil //(第一个参数要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,在ipad中要想弹出我们的分享菜单,这个参数必须要传值,可以传自己分享按钮的对象,或者可以创建一个小的view对象去传,传值与否不影响iphone显示) customItems:nil shareParams:params sheetConfiguration:nil onStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType,NSDictionary *userData,SSDKContentEntity *contentEntity,NSError *error,BOOL end) { switch (state) { case SSDKResponseStateSuccess: NSLog(@"成功");//成功 break; case SSDKResponseStateFail: { NSLog(@"--%@",error.description);//失败 break; } case SSDKResponseStateCancel: break; default: break; } }]; 直接分享 /** 分享内容 @param platformType 平台类型 @param parameters 分享参数 @param stateChangedHandler 状态变更回调处理 @return 会话 */ + (SSDKSession *)share:(SSDKPlatformType)platformType parameters:(NSMutableDictionary *)parameters onStateChanged:(SSDKShareStateChangedHandler)stateChangedHandler; 示例代码 ocswift #import NSMutableDictionary *params = [NSMutableDictionary dictionary]; [params SSDKSetupShareParamsByText:@"test" images:[UIImage imageNamed:@"shareImg.png"] url:[NSURL URLWithString:@"http://www.mob.com/"] title:@"title" type:SSDKContentTypeAuto]; [ShareSDK share:SSDKPlatformTypeWechat parameters:params onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { switch (state) { case SSDKResponseStateSuccess: NSLog(@"成功");//成功 break; case SSDKResponseStateFail: { NSLog(@"--%@",error.description); //失败 break; } case SSDKResponseStateCancel: //取消 break; default: break; } }]; 登录(authorize) 每次都会向第三方平台请求授权 /** 授权 @param platformType 平台类型 @param settings 授权设置,接受scopes属性设置,如新浪微博关注官方微博:@{@"scopes" : @[@"follow_app_official_microblog"]},类似“follow_app_official_microblog”这些字段是各个社交平台提供的。QQ平台如设置二维码授权,添加字段为QQAuthType:@{@"QQAuthType":@1}, 0为网页账号密码登录授权 @param stateChangedHandler 授权状态变更回调处理 @return 会话id */ + (SSDKSession *)authorize:(SSDKPlatformType)platformType settings:(NSDictionary *)settings onStateChanged:(SSDKAuthorizeStateChangedHandler)stateChangedHandler; 示例代码 ocswift #import [ShareSDK authorize:SSDKPlatformTypeWechat settings:nil onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) { switch (state) { case SSDKResponseStateSuccess: NSLog(@"%@",[user.credential rawData]); break; case SSDKResponseStateFail: { NSLog(@"--%@",error.description); //失败 break; } case SSDKResponseStateCancel: //用户取消授权 break; default: break; } }]; 第三方平台的相关配置配置URL Scheme 打开项目的Info选项,然后选择URL Types,添加对应平台的URL Scheme配置,如下图: 以下是主要平台URL Scheme配置参考,需要看其他的平台请参考全平台配置说明 平台配置URL Scheme 格式举例备注新浪微博wb+微博初始化的appKey如AppKey:568898243 最后配置:wb568898243QQ/Qzonetencent+appID ,QQ+APPID的十六进制如appID:100371282 最后配置:tencent100371282,QQ05FB8B52 注意appid十进制转十六进制,可以在[这里] 转换,如果appId转换的16进制数不够8位则在前面补0,如转换的是:5FB8B52,则最终填入为:QQ05FB8B52 注意:转换后的字母要大写微信微信的appid如appID:wx617c77c82218ea2c,最后配置:wx617c77c82218ea2cFacebookfb+在facebook注册得到的ApiKey如ApiKey:107704292745179 最后配置:fb107704292745179Twittertwitterkit-在twitter注册得到的ConsumerKey如ConsumerKey:viOnkeLpHBKs6KXV7MPpeGyzE 最后配置:twitterkit-viOnkeLpHBKs6KXV7MPpeGyzE 配置白名单 1.在项目的info.plist中添加LSApplicationQueriesSchemes,类型为Array 2.然后给它添加一个需要支持的项目,类型为字符串类型: 以下是主要平台白名单配置参考,需要看其他的平台请参考 白名单全平台配置说明 平台名称OpenURL白名单说明新浪微博sinaweibosinaweibohdsinaweibossosinaweibohdssoweibosdkweibosdk2.5weibosdk3.3微信wechatweixinweixinULAPIQQmqqOpensdkSSoLoginmqqopensdkapiV2mqqopensdkapiV3wtloginmqq2mqqmqqapitimapimqqopensdkminiappmqqopensdknopasteboardmqqopensdkapiV4QZONEmqzoneopensdkmqzoneopensdkapimqzoneopensdkapi19mqzoneopensdkapiV2mqqOpensdkSSoLoginmqqopensdkapiV2mqqopensdkapiV3wtloginmqq2mqqapimqqwpamqzonemqqmqqopensdkapiV4[注:若同时使用QQ和QZONE,则直接添加本格即可]Facebookfbauth2fbauthfbapi20130214fbapifbshareextensionfbapi20160328fbapi20150629Twittertwitterauth 配置ATS 微博平台还需要加上ATS配置: 1.在项目的info.plist中添加 App Transport Security Settings,类型为字典类型 2.给它添加一个Key:Allow Arbitrary Loads,类型为Boolean类型,值为YES; Twitter 添加V2接口配置 twitter 需要在infoplist加入V2配置,配置MOBTwitterVer 配置Universal Link 新浪微博,微信,QQ,Line特殊配置 新浪微博,微信,QQ,line平台在iOS13上需要校验Universal Link,之前在微信,QQ,新浪微博,line上注册应用需要在配置上Universal Link,另外项目里也要配置上,可以根据我们后台生成的Universal Link去配置: 注意: Team id,Bundle id这些必须要填写的和自己项目里使用的证书的Team id和Bundle id一致,QQ AppID是填写qq初始化的appid,如果需要QQ平台,那么需要填写上,把信息都填写之后保存了才可以使用我们生成的Univesal link 在项目里配置,如下图: 点击Capability,选择Associated Domains,并双击添加,如下图: 填写上Universal Link配置,填写的格式是applinks:xxxx 至此基本的集成流程完成了,可以测试看效果啦! 注意:这个Universal Link也可以自己生成,可以参考这个 苹果官方文档,但是为了方便用户,节省用户的时间和精力,建议直接拷贝我们生成的配置。返回搜狐,查看更多 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |