2016-12-16 3 views
0

Я работаю над реализацией универсальных ссылок для нашего приложения iOS.iOS, Универсальные ссылки, Swift. continueUserActivity не вызывает

Вот мой маленький кусочек AppDelegate:

private func application(_ application: UIApplication, openURL url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool { 
    DeepLinkHelpers.handleUniversalLink(url.absoluteString) 
    return true 
} 

private func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool { 
    DeepLinkHelpers.handleUniversalLink(userActivity.webpageURL?.absoluteString) 
    return true 
} 

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 

    signalRConnector.launch() 

    NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.processRestartSignalRNotification(_:)), name: NSNotification.Name(rawValue: "restartSignalR"), object: nil) 

    NotificationCenter.default.addObserver(self,       selector: #selector(AppDelegate.reachabilityChanged(_:)), 
              name: ReachabilityChangedNotification, 
              object: reachability) 

    do { 
     try reachability.startNotifier() 
    } catch { 
     Logger.save(text: "Unable to start notifier") 
    } 
    return true 
} 

я обработал все другие шаги для универсальной ссылки интеграции:

  1. Опубликовано файл яблочно-приложение-сайт-ассоциации в нашем веб-приложении
  2. Коммутируемая функция Связанные домены на developers.apple.com
  3. Указанные ассоциированные домены в xcode
  4. Проверено Цель членства для прав файла
  5. Said Xcode ждать, пока приложение не будет запущено вручную (вместо автозапуск)

делаю следующее отлаживать:

  1. Подключение Ipad
  2. Запуск проекта в xcode
  3. В открытии Ipad Calendar и нажмите ссылку, содержащуюся в каком-либо событии. Ссылка имеет следующий формат: app.domain.com/#/123456789
  4. Ipad открывает приложение, но continueUserActivity не вызывает, и я не могу Код дескриптора с URL для перехода к точному состоянию в приложении.

Согласно документации continueUserActivity должно быть выполнено. Он не выполняется, когда приложение работает в фоновом режиме и когда приложение не работает.

Спасибо заранее! Любая помощь оценивается.

+0

https://search.developer.apple.com/appsearch-validation-tool дает мне ошибку: невозможно разобрать URL этой страницы. Попробуйте использовать другой URL. – dskibin

+0

, но этот говорит, что все правильные и все тесты зеленые: https://branch.io/resources/aasa-validator – dskibin

+0

. Валидатор Apple - это _not_ универсальный инструмент проверки ссылок, и его результаты не имеют никакого отношения к функциям Universal Links или нет. , См. [Здесь] (http://stackoverflow.com/questions/41169954/applinks-validator-domain-missing-from-entitlement/41173007#41173007) для получения дополнительной информации об этом. –

ответ

0

Я подозреваю, что это связано с тем, что вы отметили функцию continueUserActivity как private. Я никогда не видел этого, и на самом деле Swift 3 действительно дает ошибку, когда я пытаюсь. Там, кажется, нет никаких примеров кода, структурированного таким образом on all of GitHub.

Я предлагаю удалить область private.

+1

Спасибо, Алекс! Я изменил код, чтобы быть: FUNC приложение (_ приложение: UIApplication, продолжают userActivity: NSUserActivity, restorationHandler: @escaping ([Все]) -> Пустота) -> Bool { ... возвращающие } И он работает сейчас. – dskibin

Смежные вопросы