ShareSDK iOS端如何实现小红书分享

下载SDK

请登陆官网 ,找到SDK下载,勾选需要的平台下载

导入SDK

(1)离线导入将上述下载到的SDK,直接将整个SDK资源文件拖进项目里,如下图:

并且勾选以下3个选项

在点击Finish,完成导入。添加依赖库

点击 "+" 号,并在弹框里输入以下依赖库,进行添加
必要依赖库:

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

(2)Pod引入

在Podfile 文件中添加命令:

复制代码
pod 'mob_sharesdk/ShareSDKPlatforms/XHS'

配置-ObjC

在左侧目录选中工程名,然后选择「TARGETS」>「Build Settings」>「Other Linker Flags」 ,在中「Other Linker Flags」 页面中添加-ObjC,字母 O 和 C 大写。

配置URL Scheme

在 Xcode 中,选择你的工程设置项,选中"TARGETS"一栏,在"info"标签栏的"URL type"添加"URL scheme"为你所注册的应用程序 id(申请的 appkey),前面拼接上xhs(xhs+appid)如下图:

配置白名单

在「info」标签栏种添加LSApplicationQueriesSchemes(又叫Queried URL Schemes),类型为Array然后给它添加一个需要支持的项目,类型为字符串类型: 小红书需要配置白名单是:xhsdiscover ,如下图:

配置相册使用权限

配置相册使用权限。如需使用分享功能,需要填相册访问权限,在 info 标签栏中添加 Privacy - Photo Library Usage Description,如下图:

注意:

  • 请务必保证正确填写你获得的AppKey ,并保证在网页上申请应用时所填写的 BundleID 和工程配置中的 BundleID 一致
  • URL Schemes 超过 50 个,可能会导致分享失败,将小红书 scheme 加入到前 50 个之中
  • 白名单在XCode14.0及以上版本,需要设置在前50位以内

由于苹果iOS 13系统版本安全升级,为此openSDK在3.0.0版本进行了适配。 3.0.0版本支持Universal Links方式跳转,对openSDK分享进行合法性校验。

  • 根据 Apple Developer Documentation 配置你应用的Universal Links小红书对Universal
    Links要求:

(1)必须支持HTTPS,配置的paths不能带query参数,App配置的paths必须加上通配符/*

(2)配置到小红书的Universal Links需要以"/"结尾,便于小红书SDK拼接参数能够正常完成跳转。

可以自己按照小红书的要求去生成,也可以使用我们后台生成的Universal link去配置:

打开Associated Domains开关,将Universal Links域名加到配置上

SDK代码配置

(1)初始化SDK在项目默认的plist文件里 配置ShareSDK的AppKey和AppSecret,键分别为 MOBAppKey 和 MOBAppSecret ,值为之前在MobTech官网开发者后台申请的AppKey和AppSecret( 注意配置之后保存好,然后看项目的Info选项里有没有 )

(2)初始化小红书项目启动的时候在 application:didFinishLaunchingWithOptions:中添加初始化第三方平台的方法

复制代码
#import <ShareSDK/ShareSDK.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
       [ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {

                 [platformsRegister setupXHSWithAppId:@"7bf2d19af55b56259a4c6984ecf9445c" universalLink:@"https://70imc.share2dlink.com/"];

        }];
          return YES;
}

(3)构造分享参数以及调用分享方法

复制代码
//分享图片
NSMutableDictionary * shareParams = [NSMutableDictionary dictionary];
UIImage *img = [UIImage imageNamed:@"tx@2x.png"];
[shareParams SSDKSetupXHSShareParamsByTitle:@"fff"
                             desc:@"test des"   
                     image:@[UIImagePNGRepresentation(img),@"https://seopressor.com/wp-content/uploads/2017/07/HTTP-vs-HTTPS.png"]
                       video:nil
                         type:SSDKContentTypeImage];

//分享视频 (任意选择图片或者视频进行分享)
UIImage *img = [UIImage imageNamed:@"tx@2x.png"];
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
NSString *path = [[NSBundle mainBundle] pathForResource:@"cat" ofType:@"mp4"];
id video = @{
        @"videoObj":path,
        @"coverObj":UIImagePNGRepresentation(img)};
[parameters SSDKSetupXHSShareParamsByTitle:SHARESDKDEMO_TEXT
                                      desc:@"test des"
                                     image:nil
                                     video:video
                                      type:SSDKContentTypeVideo];


[ShareSDKshare:SSDKPlatformTypeXHS parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
           if (state == SSDKResponseStateSuccess)
            {
                 NSLog(@"分享成功");
            }
           if (state == SSDKResponseStateFail)
            {
                 NSLog(@"---%@",error.description);
            }
           if (state == SSDKResponseStateCancel)
            {
                 NSLog(@"取消");
            }
           if (state == SSDKResponseStatePlatformCancel)
            {
                 NSLog(@"取消1");
            }
   }];
相关推荐
Elias不吃糖5 小时前
Java Lambda 表达式
java·开发语言·学习
情缘晓梦.6 小时前
C语言指针进阶
java·开发语言·算法
发哥来了6 小时前
AI视频生成企业级方案选型指南:2025年核心能力与成本维度深度对比
大数据·人工智能
北邮刘老师6 小时前
智能体治理:人工智能时代信息化系统的全新挑战与课题
大数据·人工智能·算法·机器学习·智能体互联网
南知意-7 小时前
IDEA 2025.3 版本安装指南(完整图文教程)
java·intellij-idea·开发工具·idea安装
geneculture7 小时前
融智学形式本体论:一种基于子全域与超子域的统一认知架构
大数据·人工智能·哲学与科学统一性·信息融智学·融智时代(杂志)
码农水水8 小时前
蚂蚁Java面试被问:混沌工程在分布式系统中的应用
java·linux·开发语言·面试·职场和发展·php
海边的Kurisu8 小时前
苍穹外卖日记 | Day4 套餐模块
java·苍穹外卖
毕设源码-邱学长8 小时前
【开题答辩全过程】以 走失儿童寻找平台为例,包含答辩的问题和答案
java
xiaobaishuoAI8 小时前
分布式事务实战(Seata 版):解决分布式系统数据一致性问题(含代码教学)
大数据·人工智能·分布式·深度学习·wpf·geo