Swift 系统分享视频(UIActivityViewController)

Swift 系统分享视频(UIActivityViewController),第1张

概述UIActivityViewController介绍 系统分享功能使用UIActivityViewController实现,此类能够实现把要分享的内容分享到社交媒体、短信、电子邮件等,分享的内容可以是文本、图片、链接、视频等。 初始化 UIActivityViewController(activityItems: <#T##[Any]#>, applicationActivities: <#T## UIActivityVIEwController介绍

系统分享功能使用UIActivityVIEwController实现,此类能够实现把要分享的内容分享到社交媒体、短信、电子邮件等,分享的内容可以是文本、图片、链接、视频等。

初始化
UIActivityVIEwController(activityItems: <#T##[Any]#>,applicationActivitIEs: <#T##[UIActivity]?#>)

UIActivityVIEwController的初始化需要传递两个参数,第一个参数activityItems是要分享的内容,该数组中的对象类型可以是任意的。
如下:

var activityItems = ["要分享的内容",UIImage.init(named: "要分享图片的名称")] as [Any]UIActivityVIEwController(activityItems: activityItems,applicationActivitIEs: nil)
如果分享的内容是同一类型,可以不加 as [Any],否则的话,就得加上

第二个参数applicationActivitIEs 表示应用程序支持的自定义服务的对象数组,一个我们一般写为nil。
如果我们需要自定义服务类型,就需要创建个CustomUIActicity,继承UIActivity

class CustomUIActicity: UIActivity {}

同时需要复写如下方法

1. activityType 2. activityTitle 3. activityImage 4. canPerform(withActivityItems:) 5. prepare(withActivityItems:) 6. activitycategory
activityType是提供的服务类型的标识符,一般返回自定义的类名。 activityTitle、 activityImage 自定的服务的标题和logo。 canPerform(withActivityItems:) 对分享的内容做下预判断,看是否需要进行分享。 prepare(withActivityItems:)点击分享按钮后,对分享进行 *** 作。 activitycategory分享的类型,分为share和action.

分享文字、图片、链接

先定义要分享的内容

let textShare = "分享的标题。" let imageShare = #imageliteral(resourcename: "icon_tab1_select") let urlShare = URL(string: "http://www.baIDu.com") let activityItems = [textShare,imageShare,urlShare] as [Any]

按照上边的初始化流程,进行初始化

let toVC = UIActivityVIEwController(activityItems: activityItems,applicationActivitIEs: nil)present(toVC,animated: true,completion: nil)
分享视频

先定义个视频的URL

let vIDeoUrl = URL(fileURLWithPath: Bundle.main.path(forResource: "test",ofType: "mp4") ?? "")

present一下

let activityVC = UIActivityVIEwController(activityItems: [vIDeoUrl],completion: nil)
分享自定义UIActivity

首选自定义个CustomUIActicity,并复写相关方法

class CustomUIActicity: UIActivity {    //分享的标题    overrIDe var activityTitle: String? {        return "一品大帅"    }    //分享的logo    overrIDe var activityImage: UIImage? {        return UIImage.init(named: "icon_tab1_select")    }    //提供的服务类型的标识符    overrIDe var activityType: UIActivityType? {        return UIActivityType.init(CustomUIActicity.self.description())    }    //分享类型    overrIDe class var activitycategory: UIActivitycategory {        return .action    }    ///此处对要分享的内容做 *** 作    overrIDe func prepare(withActivityItems activityItems: [Any]) {       activityDIDFinish(true)    }    ///此处预判断下,是否允许进行分享    overrIDe func canPerform(withActivityItems activityItems: [Any]) -> Bool {        return true    }}

创建要分享的内容

let toVC = UIActivityVIEwController(activityItems: ["分享的标题"],applicationActivitIEs: [CustomUIActicity()])present(toVC,completion: nil)
UIActivityVIEwController的第二个参数 applicationActivitIEs传入的是我们自定义的CustomUIActicity。

如果我们需要对分享结果做监听,采用如下写法

toVC.completionWithItemsHandler = {(_ activityType: UIActivityType?,_ completed: Bool,_ returnedItems: [Any]?,_ activityError: Error?) -> VoID in            print(completed ? "成功" : "失败")        }
GIt地址: https://github.com/LSnumber1/...
总结

以上是内存溢出为你收集整理的Swift 系统分享视频(UIActivityViewController)全部内容,希望文章能够帮你解决Swift 系统分享视频(UIActivityViewController)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1054616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存