在如今這個(gè)時(shí)代树叽,玩智能手機(jī)還沒(méi)玩過(guò)抖音的人阿弃,想必可以用鳳毛麟角來(lái)形容了。抖音的用戶量如此巨大缀雳,你如果想你的作品能夠讓更多的人看到渡嚣,那么用好這個(gè)平臺(tái)將是個(gè)不錯(cuò)的主意!作為iOS開發(fā)者肥印,我們可以用技術(shù)將自己App的一些優(yōu)質(zhì)內(nèi)容识椰,制作成視頻之后,讓用戶一鍵分享到抖音竖独,讓用戶有成就感的同時(shí)裤唠,還能免費(fèi)幫我們宣傳App,達(dá)到雙贏的效果莹痢。那么如何在App中實(shí)現(xiàn)視頻分享到抖音呢种蘸?別眨眼只需三板斧就可以輕松實(shí)現(xiàn)??。
一竞膳、集成抖音SDk
//CocoaPods方式集成
pod 'DouyinOpenSDK'
二航瞭、檢查是否安裝了抖音App
- 白名單新增 snssdk1128
- 利用URL 來(lái)驗(yàn)證是否安裝抖音App
if let url = URL(string: "snssdk1128://"),UIApplication.shared.canOpenURL(url)
{ //已安裝
}
三、分享
- 第一步:引入頭文件
import DouyinOpenSDK
- 第二步:構(gòu)造分享的請(qǐng)求
let req = DouyinOpenSDKShareRequest.init()
- 第三步:設(shè)置分享參數(shù)
req.mediaType = .video
//發(fā)布頁(yè)面
req.landedPageType = .publish
// 設(shè)置標(biāo)題
let shareTitle = DouyinOpenSDKShareTitle()
shareTitle.text = "眾里尋他千百度坦辟。驀然回首刊侯,那人卻在,燈火闌珊處"
req.title = shareTitle
//設(shè)置話題標(biāo)簽
req.hashtag = "#詩(shī)詞#分享#HH思???邪"
req.state = "XXXXX"
//設(shè)置分享的資源標(biāo)示
req.localIdentifiers = [shareLocalID]
- 第四步:發(fā)送分享請(qǐng)求
req.send { respond in
YLLog("抖音\\(respond)")
if respond.isSucceed {
}else{
}
}
到這里锉走,視頻分享到抖音就完成了滨彻,接下來(lái)聊聊題外話,有個(gè)localIdentifier參數(shù)如果是第一次接觸的話挪蹭,那就可以接著看看下面的內(nèi)容亭饵。
localIdentifier 資源標(biāo)識(shí)
這個(gè)通俗點(diǎn)來(lái)說(shuō),就是相冊(cè)中的每個(gè)資源的唯一標(biāo)識(shí),可以通過(guò)這個(gè)標(biāo)識(shí)從相冊(cè)中找到這個(gè)資源。
如何獲取localid呢?
///保存視頻到相冊(cè)
///返回標(biāo)識(shí)符:locaid
func vm_saveToPhotos(url:URL, successSave:@escaping ((_ locaid:String)->Void)){
var localId = ""
PHPhotoLibrary.shared().performChanges {
let result = PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: url)
let assetPlaceholder = result?.placeholderForCreatedAsset
localId = assetPlaceholder?.localIdentifier ?? ""
} completionHandler: { isSuccess, error in
if isSuccess {
successSave(localId)
YLLog("保存本地成功炸裆!id:\\(localId)")
}
}
}
優(yōu)化體驗(yàn)八秃,如果相冊(cè)中已經(jīng)存在分享視頻碱妆,就不重復(fù)執(zhí)行保存并獲取localid的步驟
怎么做呢?
我們可以根據(jù)localid 判斷相冊(cè)中是否存在要分享的視頻
func vm_isLocaSourceWithlocalid(localid: String) ->Bool{
let result = PHAsset.fetchAssets(withLocalIdentifiers: [localid], options: nil)
if result.count > 0 {
return true
}else{
return false
}
}
感謝你的閱讀和參與昔驱,HH思無(wú)邪愿與你一起在技術(shù)的道路上不斷探索疹尾。如果你喜歡這篇博客,不妨點(diǎn)個(gè)贊哦骤肛!如果你有任何問(wèn)題或建議航棱,也請(qǐng)?jiān)谠u(píng)論區(qū)留言,讓我們一起進(jìn)步萌衬!