Как получить NSData из средства выбора изображений?

#ios #swift #instagram #instagram-story

#iOS #swift #Instagram #instagram-история

Вопрос:

Я пытаюсь поделиться видео в Instagram stories из выбранного видео из моей библиотеки фотографий

 func shareToInstagramStories(video: NSData) {
            // NOTE: you need a different custom URL scheme for Stories, instagram-stories, add it to your Info.plist!
            guard let instagramUrl = URL(string: "instagram-stories://share") else {
                return
            }

            if UIApplication.shared.canOpenURL(instagramUrl) {
                let pasterboardItems = [["com.instagram.sharedSticker.backgroundVideo": video as Any]]
                UIPasteboard.general.setItems(pasterboardItems)
                UIApplication.shared.open(instagramUrl)
            } else {
                //fail
            }
    }
  

вот моя функция выбора изображений

  func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        
        self.dismiss(animated: true, completion: nil)
        videoURL = info[UIImagePickerController.InfoKey.init(rawValue: "UIImagePickerControllerReferenceURL")] as? NSURL
     }
  

Комментарии:

1. referenceURL устарел. Кстати, для iOS 14 или более поздней версии вам следует использовать PHPickerViewController

Ответ №1:

Когда я меняю «UIImagePickerControllerReferenceURL» на «UIImagePickerControllerMediaURL», это полностью сработало

  func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        self.dismiss(animated: true, completion: nil)
        videoURL = info[UIImagePickerController.InfoKey.init(rawValue: "UIImagePickerControllerMediaURL")] as? URL
 }