下載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位以內
配置Universal link
由于蘋果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:niltype: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_TEXTdesc:@"test des"image:nilvideo:videotype: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");}}];