首页 > 解决方案 > 通过 URL 共享图像

问题描述

我正在使用 json 从我的 WordPress 网站创建图像应用程序,并且我正在使用 swift,我想从我的应用程序在社交网络上共享图像,目前我尝试了这个代码它可以工作但只有图像名称我想从图像 url 共享图像,那可能吗 ?

这是我的代码

 let myWebsite = NSURL(string: "nice")

           let img: UIImage = UIImage(named:"splash")!

           guard let url = myWebsite else {
               print("nothing found")
               return
           }

           let shareItems:Array = [img,url]
           let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
        activityViewController.excludedActivityTypes = [UIActivity.ActivityType.print, UIActivity.ActivityType.postToWeibo, UIActivity.ActivityType.copyToPasteboard, UIActivity.ActivityType.addToReadingList, UIActivity.ActivityType.postToVimeo]
        self!.present(activityViewController, animated: true, completion: nil)

标签: iosswiftxcodeshare

解决方案


如果您需要下载图像然后共享,您应该单独执行此操作,没有一种方法可以为您执行此操作。方法如下:

func shareImageFromUrl(_ string: String) {

    guard let myUrl = URL(string: string) else {
        print("Invalid url!")
        return
    }

    URLSession.shared.dataTask(with: myUrl) { (data, _, _) in
        guard let data = data,
            let image = UIImage(data: data) else
        { return }

        let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: [image], applicationActivities: nil)
        activityViewController.excludedActivityTypes = [UIActivity.ActivityType.print, UIActivity.ActivityType.postToWeibo, UIActivity.ActivityType.copyToPasteboard, UIActivity.ActivityType.addToReadingList, UIActivity.ActivityType.postToVimeo]
        DispatchQueue.main.async {
            self.present(activityViewController, animated: true, completion: nil)
        }
    }.resume()
}

推荐阅读