iOS 原生分享主要有UIDocumentInteractionController和UIActivityViewController两种
1.UIDocumentInteractionController :
用途:
1.主要是预览文件内容,比如pdf,doc,excel等
2.分享文件
func openLocalFile(filePath:String){
let url = URL(fileURLWithPath: filePath)
let documentVC = UIDocumentInteractionController(url: url)
documentVC.name = (filePath.fileName as NSString).lastPathComponent
if(预览+分享){ // 先打开预览界面,界面上有分享按钮
documentVC.delegate = self // 遵循UIDocumentInteractionControllerDelegate
documentVC.presentPreview(animated: true)
}else{
//不用预览,直接分享
vc.presentOpenInMenu(from: self.view.bounds, in: self.view, animated: true)
}
}
2.UIActivityViewController:
常用的相册分享就是UIActivityViewController支持
activityItems:可以是image,data,URL,String等,但是是否同时支持多种类型,多个item得看目的APP的配置了。比如微信不支持同时分享image,URL等不同类型,相同类型的也不支持同时分享多个数量,选择多个,默认只有第一个
func ActivityShare(dataArr:[URL]) {
let activityVC = UIActivityViewController(activityItems: dataArr, applicationActivities: nil)
//排除那些平台
activityVC.excludedActivityTypes = [
UIActivity.ActivityType.airDrop
]
activityVC.completionWithItemsHandler = {(activityType, complete, items, error) -> Void in
//分享后的回调
if complete {
print("分享成功")
}else{
//个人觉得没必要加失败,因为分享失败,取消分享都会回调
print("分享失败:\((error?.localizedDescription ?? ""))!")
}
self.present(activityVC, animated: true, completion: nil)
}
网友评论