Как получить доступ к универсальной ссылке в приложении iOS? - PullRequest
0 голосов
/ 06 декабря 2018

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

Я использую Xcode 10.0.И запущенное приложение на iOS 12.0 (iPhone 7 Plus).

Это моя универсальная ссылка: https://en5vz.app.goo.gl/kjvaHzXrLMNBEDtG7

Когда я нажимаю на эту ссылку, приложение запускается, но приведенный ниже метод не используется.звонил:

private func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([Any]?) -> Void) -> Bool {

    print("\(#function) ---- \(userActivity.webpageURL)")
    if #available(iOS 11.0, *) {
        print("\(#function) ---- \(userActivity.referrerURL)")
    } else {
        // Fallback on earlier versions
    }


    if let incominURL = userActivity.webpageURL{

        let linkHandled = DynamicLinks.dynamicLinks()?.handleUniversalLink(incominURL, completion: { (dynamiclink, error) in

            if let dynamiclink = dynamiclink, let _ = dynamiclink.url{

                self.handleIncomingDynamicLink(dynamiclink: dynamiclink)
            }

        })
        return linkHandled!

    }

    return false

}

Я не могу понять, в чем именно проблема.enter image description here

Ответы [ 3 ]

0 голосов
/ 29 мая 2019

Это старый вопрос, но для всех, кто ищет, отсутствующим компонентом является файл app-site-association: https://developer.apple.com/documentation/uikit/core_app/allowing_apps_and_websites_to_link_to_your_content/enabling_universal_links

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

  1. Добавьте право ассоциированных доменов в свое приложение.Включите все домены, которые ваше приложение будет поддерживать, используя префикс службы applinks.См. Добавление права на связанные домены.
  2. Добавление файла ассоциации сайта Apple App на свой веб-сайт.См. Добавление файла ассоциации сайтов приложений Apple.
  3. Добавление ключа ссылок приложений в файл ассоциации сайтов приложений Apple.Укажите разделы вашего веб-сайта, которые будут обрабатываться каждым из ваших приложений.

Вы выполнили шаг 1 (и шаг 0, который устанавливает код в вашем приложении), но шаги 2и 3 отсутствуют.

0 голосов
/ 21 июля 2019

Я надеюсь, что это поможет тем, кто в будущем столкнется с этим.У меня была та же проблема, когда я мог открыть ссылку на свой сайт с помощью приложения IOS, но не смог войти.Позже я узнал, что это был @escaping [Any]?часть, которая вызвала это.Вместо этого я изменил свой код на это: @escaping ([UIUserActivityRestoring]?), И он вошел в консоль Xcode.

func application(_ application: UIApplication, continue userActivity: 
NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        print("Continue User Activity called: ")
        if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
            let url = userActivity.webpageURL!
            print(url.absoluteString)
            //handle url and open whatever page you want to open.
        }

        return true
    }
0 голосов
/ 06 декабря 2018

Для глубоких ссылок я бы ожидал, что она вызовет функцию открытого URL:

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool

Разве это не работает для вас?

...