Поделиться историей в Instagram с фоновым изображением и наклейкой - IOS Swift - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь поделиться историей с фоновым изображением или наклейкой с помощью схемы URL в моем приложении ios, я использую прилагаемый код, и он не работает.Когда я пытаюсь поделиться только фоновым изображением или просто стикером, это работает.Но когда я пытаюсь поделиться как фоновым изображением, так и наклейкой сверху, это не сработает.

Любые идеи?

func shareToInstagram(deepLinkString : String){
        let url = URL(string: "instagram-stories://share")!
        if UIApplication.shared.canOpenURL(url){

            let backgroundData = UIImageJPEGRepresentation(UIImage(named: "shop_placeholder")!, 1.0)!
            let creditCardImage = UIImage(named: "share_instagram")!
            let stickerData = UIImagePNGRepresentation(creditCardImage)!
            let pasteBoardItems = [
                                    ["com.instagram.sharedSticker.backgroundImage" : backgroundData],
                                    ["com.instagram.sharedSticker.stickerImage" : stickerData],
                                  ]

            if #available(iOS 10.0, *) {

                UIPasteboard.general.setItems(pasteBoardItems, options: [.expirationDate: Date().addingTimeInterval(60 * 5)])
            } else {
                UIPasteboard.general.items = pasteBoardItems
            }
            UIApplication.shared.openURL(url)
        }

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

Я копирую вставленный код OP для использования в моем собственном приложении (только с заменой различных UIImages) и обнаружил только 1 проблему, элементы из монтажного листа должны содержаться в одном массиве, иначе instagram отобразит только первый элемент (в данном случае фоновый слой).Чтобы исправить это, замените декларацию элементов картона следующим кодом

let pasteBoardItems = [
                ["com.instagram.sharedSticker.backgroundImage" : backgroundData,
                "com.instagram.sharedSticker.stickerImage" : stickerData]
            ]

(в основном просто удалите закрывающую и открытую скобку, разделяющую два элемента)

Также, как указано в предыдущем ответе,убедитесь, что «instagram-Stories» включен в LSApplicationQueriesSchemes в файле info.plist

Я использую этот точный код в своем приложении, и теперь он отлично работает

0 голосов
/ 29 апреля 2019

Все правильно, мой код похож и работает для iOS 11+.Я предлагаю вам следующее:

  1. проверьте данные изображения, которые вы передаете в монтажный картон (jpg не может быть преобразован с помощью UIImagePNGRepresentation и наоборот)
  2. проверьте info.plist.Вы должны включить в нем схему «instagram-story» (клавиша LSApplicationQueriesSchemes)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...