美文网首页
iOS原生分享-

iOS原生分享-

作者: 墨凌风起 | 来源:发表于2020-05-09 20:44 被阅读0次

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)
 }

相关文章

网友评论

      本文标题:iOS原生分享-

      本文链接:https://www.haomeiwen.com/subject/gumlnhtx.html