Подтвердить что ты не робот

Отделение Глубокая ссылка не открывается

Я пытался (безуспешно) использовать Branch, чтобы реализовать глубокую привязку к нашему приложению iOS. URL-адрес ветки перенаправляется непосредственно в App Store и никогда не пытается открыть приложение. Мне что-то не хватает.

Что я сделал:

  • Включенный Branch SDK (CocoaPods) Добавлен branch_key в приложение PLIST
  • Добавлена ​​схема URL-адресов для типов URL-адресов в области приложений
  • Включено Associated Domains как в проекте, так и в консоли разработчика.
  • Убедитесь, что файл прав включен в сборку.

  • Зарегистрированный обработчик глубоких ссылок в AppDelegate

Панель инструментов: Настройки → Настройки ссылок:

  • "Всегда пытаться открыть приложение" проверяется
  • "Схема URI IOS" установлена ​​в пользовательскую схему URI приложения.
  • "Включить универсальные ссылки".
  • Идентификатор пакета и префикс приложения Apple установлены правильно.

    На вкладке "Маркетинг" на панели "Филиал" я создал одну ссылку. Я отправляю по электронной почте эту ссылку себе и открываю ее на устройстве (Mail.app). Safari открывается, тогда App Store открывается, как будто приложение не установлено.

Вызываются ни application:openURL:sourceApplication:annotation, ни application:continueUserActivity:restorationHandler.

Методы AppDelegate:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    let branch: Branch = Branch.getInstance()
    branch.initSessionWithLaunchOptions(launchOptions, andRegisterDeepLinkHandler: { params, error in
        if (error == nil) {
            // params are the deep linked params associated with the link that the user clicked -> was re-directed to this app
            // params will be empty if no data found
            // ... insert custom logic here ...
            NSLog("params: %@", params.description)
        }
    })
    return true
}

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
    // pass the url to the handle deep link call

    return Branch.getInstance().continueUserActivity(userActivity)
}

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
    // pass the url to the handle deep link call
    Branch.getInstance().handleDeepLink(url);

    // do other deep link routing for the Facebook SDK, Pinterest SDK, etc
    return true
}

Мне не хватает шага конфигурации? Это потому, что приложение установлено с помощью отладки Xcode, а не через магазин приложений? Я ожидаю, что вызовут методы делегирования приложения, но это не так.

4b9b3361

Ответ 1

Похоже, что приложение должно быть установлено через App Store/Test Flight/Ad Hoc или приложение не будет считаться установленным.

Я установил приложение на свое устройство, используя специальное предложение, и все работает.

Ответ 2

Для меня ссылка работала, хотя я установил привязку без Adhoc-распространения. Затем в один прекрасный день он прекратил работать. Это произошло потому, что я нажал на прямую ссылку на bnc внутри приложения.

Исправить это было легко - просто нажав ссылку. Опция отображает "Открыть в приложении". Нажмите эту ссылку, и ссылка будет обработана приложением. В следующий раз ссылка работает, как ожидалось, даже без длительного нажатия, поскольку Safari помнит об этом как о поведении по умолчанию.

Ответ 3

У меня тоже была проблема, но мое решение отличается от вашего.

Примечание. Мы можем открыть приложение в режиме отладки (я сделал это, как указано Alex Bauer в разделе выше комментариев).

В .plist я добавил два разных ключа: один - live, а другой - test (одновременно) вместе с вышеупомянутыми настройками конфигурации.

Домен для глубокой привязки, который я использовал, был этим. bnc.lt. Я отправил письмо в отдел поддержки ветки Io по моей проблеме, после чего получил ответ следующим образом:

Причина, по которой возникают проблемы, связана с тем, что вы все еще находитесь в нашем домене связи bnc.lt. Этот домен доменов постепенно прекращался в течение прошлого года. Разработка и функциональность в течение некоторого времени прекратились в пользу нашего нового домена связи (app.link). Чтобы исправить свои проблемы и корректно работать с вашим AASA-валидатором, вам нужно будет изменить домен вашей ссылки с bnc.lt на app.link на панели управления филиалом (https://dashboard.branch.io/settings/link). После того, как вы внесете это изменение, вам нужно будет обновить приложение, чтобы принять новый домен ссылки app.link, а также ваш старый домен bnc.lt. https://gist.github.com/ethanneff/a2a70d1b3518c638701c28b1bd374e80

Пожалуйста, посетите приведенную выше ссылку, и это очень полезно.

Надеюсь, он решает вашу проблему, Happy Branching:)

Ответ 4

У меня возникла та же проблема - некоторые ответы здесь датированы, поэтому я постараюсь предоставить обновление:

Исправить это было легко - просто долго нажимал на ссылку. Опция показывает "Открыть в приложении".

Я считаю, что в iOS 11 этого не произошло, если только вы не тестируете в iOS 10, это не вариант.

Похоже, что приложение должно быть установлено через App Store/Test Flight/Ad Hoc, иначе оно не будет считаться установленным.

Как отметил Алекс в комментариях, это не совсем так. Ссылки ветки работают, когда приложение установлено через XCode.

Для меня проблема была своего рода проблема с кэшированием на моем устройстве. у меня есть несколько схем Debug & Релиз каждого из которых имеет свой собственный ключ ветки и ссылки. Некоторые, как они запутались и ссылки не открываются в одной схеме. Я смог решить эту проблему путем принудительного перезапуска устройства.