Внедрение NSURL в Instagram с помощью swift - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть приложение для редактирования фотографий в swift, которое нуждается в опции прямого доступа к Instagram.

Instagram дает ссылку на ловушки iphone здесь, но реализация оказалась трудной

В идеале страницыВ классе есть кнопка, которая должна отправлять изображение, сохраненное как pic.igo, (.igo гарантирует только instagram) и переносит пользователя прямо на его страницу поста в Instagram с уже выбранным «pic.igo»

Вот что зацепляетдает вам, и я не могу найти какие-либо современные варианты использования.Полная страница находится по ссылке ниже

NSURL *instagramURL = [NSURL URLWithString:@"instagram://location?id=1"];
if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
    [[UIApplication sharedApplication] openURL:instagramURL];
}

Так как мне вставить это в эту функцию

@IBAction func Button(_ sender: Any) {


}

Iphone перехватывает документ

https://www.instagram.com/developer/mobile-sharing/iphone-hooks/

Примечания - проверка того, установлено ли приложение, поможет, но мне просто нужно найти способ заставить эту функцию работать, и я могу пробежаться по остальным

  • "media? id = MEDIA_ID" из документации, которую я предполагаю, заменяет часть местоположения в их данном фрагменте, но тогда как мне получить изображение в поле зрения, которое будет присвоено MEDIA_ID

  • вырезать и вставлять оставляет мне около 80 ошибок и без возможности визуального восстановления

1 Ответ

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

Если вы просто ищете Swift-перевод кода ObjC, который они предоставляют, вот результат:

@IBAction func Button(_ sender: Any) {
    if let instagramURL = URL(string: "instagram://location?id=1"),
        UIApplication.shared.canOpenURL(instagramURL) {
        UIApplication.shared.open(instagramURL)
    }
}

Если у вас возникли проблемы с конвертацией кода из ObjC, вы можете попробовать некоторые онлайн-конвертеры, вот несколько вариантов:

Но вышеупомянутое не предназначено для публикации в Instagram, если вы хотите поделиться, это то, что вам нужно сделать:

guard let instagramURL = URL(string: "instagram://app"),
    UIApplication.shared.canOpenURL(instagramURL) else {
        print("Instagram app is not installed")
        return
}

let yourIgoFile = Bundle.main.url(forResource: "test", withExtension: "igo")!
let documentController = UIDocumentInteractionController(url: yourIgoFile)
documentController.uti = "com.instagram.exclusivegram"
documentController.presentOpenInMenu(from: view.bounds, in: view, animated: true)
...