iOS端如何实现小红书分享 原创

MobService
发布于 2024-7-5 18:35
浏览
0收藏

下载SDK


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


iOS端如何实现小红书分享-鸿蒙开发者社区1111.png


导入SDK


(1)离线导入


将上述下载到的SDK,直接将整个SDK资源文件拖进项目里,如下图:


iOS端如何实现小红书分享-鸿蒙开发者社区5.png


并且勾选以下3个选项


iOS端如何实现小红书分享-鸿蒙开发者社区6.png


在点击Finish,完成导入。


添加依赖库


iOS端如何实现小红书分享-鸿蒙开发者社区4.jpg


iOS端如何实现小红书分享-鸿蒙开发者社区5.jpg


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


必要依赖库:


  • 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 大写。


iOS端如何实现小红书分享-鸿蒙开发者社区6.jpg


配置URL Scheme


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


iOS端如何实现小红书分享-鸿蒙开发者社区6.jpg


配置白名单


在「info」标签栏种添加LSApplicationQueriesSchemes(又叫Queried URL Schemes),类型为Array


然后给它添加一个需要支持的项目,类型为字符串类型: 小红书需要配置白名单是:xhsdiscover ,如下图:


iOS端如何实现小红书分享-鸿蒙开发者社区6.jpg


配置相册使用权限


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


iOS端如何实现小红书分享-鸿蒙开发者社区6.jpg


注意:


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


配置Universal link


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



小红书对Universal Links要求:


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


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


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


iOS端如何实现小红书分享-鸿蒙开发者社区6.jpg


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


iOS端如何实现小红书分享-鸿蒙开发者社区6.jpg


SDK代码配置


(1)初始化SDK


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


iOS端如何实现小红书分享-鸿蒙开发者社区7.jpg


(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");
            }
   }];

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
收藏
回复
举报
回复
    相关推荐