#ios #swift #facebook #instagram
#iOS #быстрый #Facebook #Instagram
Вопрос:
iOS 14.2, я не могу поделиться изображением, как описано в https://developers.facebook.com/docs/instagram/sharing-to-feed /
Я могу правильно поделиться тем же изображением с любым другим приложением из этого меню (например, telegram).
Код:
func shareToInstagramFeed() {
let instagramURL = NSURL(string: "instagram://")
if UIApplication.shared.canOpenURL(instagramURL! as URL) {
let jpgPath = (NSTemporaryDirectory() as NSString).appendingPathComponent("instagram.ig")
do {
try selectedImage.image?.jpegData(compressionQuality: 1)?.write(to: URL(fileURLWithPath: jpgPath), options: .atomic)
} catch {
print(error)
}
let rect = CGRect.zero
documentInteractionController = UIDocumentInteractionController(url: URL(fileURLWithPath: jpgPath))
documentInteractionController.delegate = self
documentInteractionController.uti = "com.instagram.photo"
documentInteractionController.presentOpenInMenu(from: rect, in: view, animated: true)
}
}
Комментарии:
1. У меня точно такая же проблема, вы нашли какое-нибудь решение?
2. Здесь та же проблема. Очень неприятно. Все остальные варианты работают, за исключением Instagram
Ответ №1:
Я боролся с этим и в итоге использовал UIActivityViewController, и это сработало.
let items = [image]
let ac = UIActivityViewController(activityItems: items, applicationActivities: nil)
present(ac, animated: true)
Ответ №2:
В версии Instagram 171.0 эта проблема исправлена. Это работает, но очень некрасиво, вы не можете выбрать историю или ленту, и вы не можете редактировать фотографию.
Я считаю, что в функции instagram улучшит эту функцию.
Если вам нужно поделиться только одним изображением, вы можете использовать этот обходной путь:
let ac = UIActivityViewController(activityItems: [imageUrl, imageUrl], applicationActivities: nil)
present(ac, animated: true)
(ImageUrl намеренно набран 2 раза)
Затем вы получите следующий экран: