iOS 系统分享-不同内容

///系统分享类型
public enum SystemShareType {
    ///分享图片
    case shareImage(UIImage)
    ///分享链接
    case shareUrl(URL)
    ///分享带标题链接
    case shareTitleUrl(String,URL)
    ///分享带标题图片链接
    case shareTitleImageUrl(String,UIImage,URL)
    ///分享多张图片最多九张
    case shareMoreImages([UIImage])
}

///系统分享
public func XlbSystemShare(_ shareType:SystemShareType){
    var arrayItems:[Any] = []
    var excludedActivityTypes:[UIActivity.ActivityType] = []
    switch shareType {
    case let .shareImage(image):
        arrayItems.append(image.jpegData(compressionQuality: 1.0) as Any)
        excludedActivityTypes = [.message,.mail,.copyToPasteboard,.addToReadingList]
        break
    case let .shareUrl(url):
        arrayItems.append(url)
        excludedActivityTypes = [.message,.mail,.addToReadingList,.saveToCameraRoll]
        break
    case let .shareTitleUrl(title, url):
        arrayItems.append(title)
        arrayItems.append(url)
        excludedActivityTypes = [.message,.mail,.addToReadingList,.saveToCameraRoll]
        break
    case let .shareTitleImageUrl(title, image, url):
        excludedActivityTypes = [.message,.mail,.addToReadingList,.saveToCameraRoll]
        arrayItems.append(title)
        arrayItems.append(image.jpegData(compressionQuality: 1.0) as Any)
        arrayItems.append(url)
        break
    case let .shareMoreImages(images):
        excludedActivityTypes = [.message,.mail,.copyToPasteboard,.addToReadingList,.saveToCameraRoll]
        for (index,image) in images.enumerated() {
            if images == nil {
                continue
            }
            if index < 9 {
                arrayItems.append(image.jpegData(compressionQuality: 1.0) as Any)
            } else {
                break
            }
        }
        break
    }
    excludedActivityTypes.append(.assignToContact)
    let activityController = UIActivityViewController(activityItems: arrayItems, applicationActivities: nil)
    activityController.excludedActivityTypes = excludedActivityTypes
    if let window = UIApplication.shared.keyWindow, let rootViewController = window.rootViewController {
        activityController.popoverPresentationController?.sourceView = window
        activityController.popoverPresentationController?.sourceRect = CGRect(origin: CGPoint(x: window.bounds.width / 2.0, y: window.bounds.size.height - 1.0), size: CGSize(width: 1.0, height: 1.0))
        activityController.modalPresentationStyle = .fullScreen
        rootViewController.present(activityController, animated: true, completion: nil)
    }
    
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容