• MobTech ShareSDK iOS端快速集成


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

    集成前准备
    注册账号
    使用ShareSDK之前,需要先在MobTech官网注册开发者账号,并获取AppKey和AppSecret,详情可以点击查看创建应用流程

    分享到第三方平台,需要现在对应第三方平台申请平台的AppKey,详情可以点击查看注册应用流程
    在这里插入图片描述

    添加配置
    获取SDK
    MobService下载中心 下载最新版本SDK

    选中ShareSDK,选择需要的平台,然后点击“保存配置”:在这里插入图片描述
    在这里插入图片描述

    选中所需要的平台后,点击“下载”按钮,就会下载好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(闭环分享库)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    注意:导入的时候,需要将整个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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    示例代码

    调用位置开发者可以自己指定,只需在使用SDK功能之前调用即可。

    ocswift
    #import 
        [MobSDK uploadPrivacyPermissionStatus:YES onResult:^(BOOL success) {
        }];
    
    • 1
    • 2
    • 3
    • 4

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

    /**
     *  ShareSDK 平台注册方法
     *  @param importHandler 用于设置各平台注册信息,也可在mob管理后台进行注册
     */
    + (void)registPlatforms:(void(^)(SSDKRegister *platformsRegister))importHandler;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    示例代码

    #import 
    
        - (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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    分享(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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    示例代码

    #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: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;
            }
    }];
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
  • 相关阅读:
    数据血缘全方位理解&实施指南
    OAuth2简介
    JavaScript深浅拷贝实现
    【分层强化学习】HIRO:Data-Efficient Hierarchical Reinforcement Learning
    基于 Keras 的图像分类器
    pytest结合Allure生成测试报告
    【Spring源码】9. 重要的ConfigurationClassPostProcessor
    使用Redis发布订阅模式实现 Session共享
    使用nginx发布tomcat站点
    14【视图】
  • 原文地址:https://blog.csdn.net/apkkkk/article/details/126482150