iOS Swift-视频分享到抖音

1508d5eb0439ece2ab299cc0ca207c15.jpeg

在如今这个时代,玩智能手机还没玩过抖音的人,想必可以用凤毛麟角来形容了。抖音的用户量如此巨大,你如果想你的作品能够让更多的人看到,那么用好这个平台将是个不错的主意!作为iOS开发者,我们可以用技术将自己App的一些优质内容,制作成视频之后,让用户一键分享到抖音,让用户有成就感的同时,还能免费帮我们宣传App,达到双赢的效果。那么如何在App中实现视频分享到抖音呢?别眨眼只需三板斧就可以轻松实现。

一、集成抖音SDk

抖音开放平台iOS集成文档 >

//CocoaPods方式集成
pod 'DouyinOpenSDK'

二、检查是否安装了抖音App

  1. 白名单新增 snssdk1128
Untitled.png
  1. 利用URL 来验证是否安装抖音App
         if let url = URL(string: "snssdk1128://"),UIApplication.shared.canOpenURL(url)
            {  //已安装

            }

三、分享

  • 第一步:引入头文件
import DouyinOpenSDK

  • 第二步:构造分享的请求
let req = DouyinOpenSDKShareRequest.init()

  • 第三步:设置分享参数
  req.mediaType = .video
   //发布页面
   req.landedPageType = .publish

 // 设置标题
   let shareTitle = DouyinOpenSDKShareTitle()
          shareTitle.text = "众里寻他千百度。蓦然回首,那人却在,灯火阑珊处"
          req.title = shareTitle

   //设置话题标签
   req.hashtag = "#诗词#分享#HH思️邪"

   req.state = "XXXXX"
 //设置分享的资源标示
  req.localIdentifiers = [shareLocalID]

  • 第四步:发送分享请求
      req.send { respond in
                YLLog("抖音\\(respond)")
                if respond.isSucceed {
                }else{
                }
         }

抖音开放平台iOS分享文档 >


到这里,视频分享到抖音就完成了,接下来聊聊题外话,有个localIdentifier参数如果是第一次接触的话,那就可以接着看看下面的内容。

localIdentifier 资源标识

这个通俗点来说,就是相册中的每个资源的唯一标识,可以通过这个标识从相册中找到这个资源。

如何获取localid呢?

///保存视频到相册
///返回标识符: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)")

        }

    }
}

优化体验,如果相册中已经存在分享视频,就不重复执行保存并获取localid的步骤

怎么做呢?

我们可以根据localid 判断相册中是否存在要分享的视频

func vm_isLocaSourceWithlocalid(localid: String) ->Bool{

    let result = PHAsset.fetchAssets(withLocalIdentifiers: [localid], options: nil)
    if result.count > 0 {
       return true
    }else{
       return false
    }
}

感谢你的阅读和参与,HH思无邪愿与你一起在技术的道路上不断探索。如果你喜欢这篇博客,不妨点个赞哦!如果你有任何问题或建议,也请在评论区留言,让我们一起进步!

你可能感兴趣的:(iOS Swift-视频分享到抖音)