乐趣区

关于ios:MobTech-ShareSDK-iOS端快速集成

开发工具:Xcode
集成形式:手动导入 SDK 或者 Pod 集成
SDK 版本反对:SDK 反对 Xcode 9.1.0, iOS8.0+ 及以上版本

集成前筹备
注册账号
应用 ShareSDK 之前,须要先在 MobTech 官网注册开发者账号,并获取 AppKey 和 AppSecret,详情能够点击查看创立利用流程

分享到第三方平台,须要当初对应第三方平台申请平台的 AppKey,详情能够点击查看注册利用流程

ShareSDK 流程图

增加配置
获取 SDK
在 MobService 下载核心 下载最新版本 SDK

选中 ShareSDK,抉择须要的平台,而后点击“保留配置”:

选中所须要的平台后,点击“下载”按钮,就会下载好 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
(1)手动下载 SDK 导入

将下面获取到的 SDK,间接将整个 SDK 资源文件拖进我的项目里,如下图:
并且勾选以下 3 个选项

在点击 Finish,实现导入。

(2)CocoaPods 引入,请参考 Pod 集成

增加依赖库

点击“+”号,并在弹框里输出以下依赖库,进行增加

必要依赖库:

  • libc++.tbd
  • libz.tbd
  • libsqlite3.tbd

社交平台依赖库(依据本人需要增加):

苹果登录依赖库:

  • AuthenticationServices.framework

Facebook 依赖库:

  • AuthenticationServices.framework
  • SafariServices.framework
  • Accelerate.framework

新浪微博

  • ImageIO.framework
  • Photos.framework

Instagram

  • AssetsLibrary.framework
  • Photos.framework

美拍

  • AssetsLibrary.framework

Xcode 配置
(1)在我的项目的 Build Settings 中的 Other Linker Flags 双击增加”-ObjC”,留神大小写

(2)配置 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 性能之前调用即可。

oc
#import <MOBFoundation/MobSDK+Privacy.h>
    [MobSDK uploadPrivacyPermissionStatus:YES onResult:^(BOOL success) {}];
swift
MobSDK.uploadPrivacyPermissionStatus(true) {(Success) in
        };

导入头文件并进行第三方平台初始化(registPlatforms)
通常都是启动的时候在 application:didFinishLaunchingWithOptions: 中增加初始化办法,也可保障注册在 ShareSDK 的业务执行之前即可。这里提供几个主平台的初始化,其余平台能够参考 demo 里的 MOBShareSDKHelper.m 文件调用 点击这里

/**
 *  ShareSDK 平台注册办法
 *  @param importHandler 用于设置各平台注册信息,也可在 mob 治理后盾进行注册
 */
+ (void)registPlatforms:(void(^)(SSDKRegister *platformsRegister))importHandler;

示例代码

#import <ShareSDK/ShareSDK.h>

    - (BOOL)application:(UIApplication *)application    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {
        //QQ
        [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;
}

分享(share)
在我的项目须要分享的按钮事件里加以下接口:

/**
 *  设置分享参数
 *
 *  @param text     文本
 *  @param images   图片汇合, 传入参数能够为单张图片信息,也能够为一个 NSArray,数组元素能够为 UIImage、NSString(图片门路)、NSURL(图片门路)、SSDKImage。如: @"![](file:///C:\Users\liufl\AppData\Roaming\Tencent\QQTempSys\[5UQ[BL(6~BS2JV6W}N6[%S.png)

http://www.mob.com/images/logo_black.png"或 @[@"![](file:///C:\Users\liufl\AppData\Roaming\Tencent\QQTempSys\[5UQ[BL(6~BS2JV6W}N6[%S.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 platformType 平台类型
 *  @param parameters 分享参数
 *  @param stateChangedHandler 状态变更回调解决
 *  @return 会话
 */
+ (SSDKSession *)share:(SSDKPlatformType)platformType
                    parameters:(NSMutableDictionary *)parameters
           onStateChanged:(SSDKShareStateChangedHandler)stateChangedHandler;

示例代码

#import <ShareSDK/ShareSDK.h>
    // 结构分享内容
    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:SSDKPlatformTypeSinaWeibo 
        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;
        }
}];
退出移动版