Universal Links показывает баннер поверх браузера Safari

Пожалуйста, помогите мне в этом вопросе. Я реализовал универсальные ссылки, следуя https://www.raywenderlich.com/128948/universal-links-make-connection, и проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю на ссылку, я перенаправляюсь в веб-браузер, а не в приложение. И в браузере сафари, когда я прокручиваю страницу вниз, я получаю баннер с кнопкой ОТКРЫТЬ. Щелкнув по нему, открывается мое приложение и открывается конкретный контроллер представления в соответствии с логикой. Так почему же он сначала открывается в браузере? Если приложение установлено, оно должно открываться непосредственно в приложении, а не в веб-браузере.

Ниже приведены методы в делегатах моего приложения:

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {

        if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
            guard let url = userActivity.webpageURL else {
                return false
            }
            openViewController(url)
        }
        return true
    }

func openViewController(url: NSURL) {
        let components = NSURLComponents(URL: url, resolvingAgainstBaseURL: true)
        print(components)
        print(url.absoluteString)
        if url.host == "refit.co" && (url.pathComponents![2] == "supplements" || url.pathComponents![2] == "equipments") {
            print("This is the supplements/equipments universal link")
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let vc = storyboard.instantiateViewControllerWithIdentifier("Home")
            let navController = self.window?.rootViewController as? UINavigationController
            navController?.pushViewController(vc, animated: false)
            let vc2 = storyboard.instantiateViewControllerWithIdentifier("SupplementDetail") as? VCSupplementDetail
            vc2?.itemID = getID(url.query!)
            vc2?.screenName = url.pathComponents![2] == "supplements" ? "Supplements" : "Equipments"
            navController?.pushViewController(vc2!, animated: true)
            print("Query: \(url.query)")
        } else {
            print("This is the url: \(url)")
            print(url.host)
            print(url.path)
            print(url.query)
            print(url.pathComponents)
        }
    }

person Muneeb Rehman    schedule 29.12.2016    source источник


Ответы (1)


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

person Alex Bauer    schedule 29.12.2016
comment
Спасибо @AlexBauer. Так что это ограничение универсальных ссылок - person Muneeb Rehman; 01.01.2017
comment
Да, к сожалению, да :( - person Alex Bauer; 02.01.2017