branch.io: не удается обнаружить установленное приложение из JavaScript

1

Я пытаюсь получить базовый значок приложения для работы. Нет глубоких ссылок (на данном этапе), просто базового баннера, когда пользователь переходит на наш веб-сайт, который позволяет ему либо получить наше приложение iOS, либо запустить его, если он уже установлен. Проблема в том, что баннер всегда отображает опцию "получить в магазине приложений", даже если приложение уже установлено на устройстве.

Я посмотрел на Branch.io: javascript обнаруживает, установлено ли мобильное приложение и другие подобные вопросы без какой-либо помощи.

Я запустил валидатор универсальных ссылок и ulv_script.sh и не обнаружил никаких проблем.

На веб-странице я делаю:

branch.init('My_key_live_xxx', null, function(err, data) {
    console.log('init...');
    console.dir(data);
});

Свойство data выглядит следующим образом при отладке:

{data: "", data_parsed: {}, has_app: null, identity: null, referring_identity: null, …}

В AppDelegate в ios-приложении я ничего не делаю:

let branch: Branch = Branch.getInstance()
        branch.initSession(launchOptions: 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 ...
                print("params: %@", params as? [String: AnyObject] ?? {})
            }
        })

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

Полуфункциональный, всегда указывающий на версию магазина приложений, является живым, если кто-то хочет увидеть проблему заранее: https://www.papereed.com/player

Думаю, я пропустил что-то действительно фундаментальное в отношении branch.io и, надеюсь, кто-то может помочь. Спасибо!

Теги:
iphone
branch.io

1 ответ

1
Лучший ответ

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

Чтобы преодолеть это ограничение, Branch использует другой домен для ссылки за кнопкой Deepview, так что посещаемый домен отличается от текущей веб-страницы. Ссылка за кнопкой Deepview использует домен формата -alternate.app.link '.

Убедитесь, что вы добавили -alternate.app.link для своего приложения в файл прав. Вы можете проверить документацию, предоставляющую информацию о том, как добавить сюда домены.

Для обновления кнопки "Получить/Открыть в приложении" CTA:

Это характерно для развития. Поскольку приложение часто переустанавливается на устройство, флаг, has_app, используемый веткой для определения того, установлено ли приложение на устройстве, находится в неисправном состоянии.

Чтобы принудительно сбросить переменную has_app чтобы изменить баннер Journey CTA с "Загрузка" на "Открыть", выполните следующие действия:

  1. Нажмите кнопку "Загрузить" - это должно перенаправить его в Play или App Store
  2. Установка приложения
  3. Вернитесь на веб-страницу с баннером Journeys, который должен по-прежнему отображать кнопку "Загрузить"
  4. Нажмите кнопку "Загрузить" еще раз - приложение должно открыть (как только вы обновите файл прав, чтобы включить -alternate.app.link), и данные, указанные в конфигурации "Путешествия", должны быть доступны для приложения
  5. Закрыть, а затем снова открыть веб-страницу с баннером Journeys - баннер должен теперь иметь кнопку "Открыть"
  6. Нажмите на кнопку "Открыть"

Обратите внимание, что вышеуказанные шаги требуются только в режиме разработки для целей тестирования. В дикой природе на производстве пользователи не будут видеть эту проблему. Кроме того, обратите внимание, что может потребоваться некоторое время для обновления кнопки CTA. Это может быть до 30 минут в часы пик.

  • 0
    Спасибо, шаг силового сброса, который вы дали, сработал! Вероятно, сочетание этого и CTA задержка обновления кнопки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню