Как настроить передачу обслуживания между браузером и родным приложением в iOS 8
Я пытаюсь настроить передачу обслуживания из браузера в нативное приложение, но безуспешно. Я уверен, что просто пропускаю шаг. Вот что я сделал
- Обновил мой bundleId с помощью опции "Связанные домены" и создал новые профили обеспечения на сайте разработчика
- В Xcode добавили мои домены в список связанных доменов на вкладке "Возможности"
- Создал файл json.txt с моим bundleId, включая идентификатор команды
- Опалил файл json.txt с ключом и сертификатом, который я использую для https
- Загрузил файл apple-app-site-association в корень сайта
У меня уже есть перенос между Native App и Native App и Native App-to-Web Browser. Что мне не хватает?
Это единственная документация, над которой я работал.
2 ответа
У нас была та же проблема, и мы потратили немало часов, чтобы ее решить.
Нам удалось решить эту проблему, добавив в наш файл JSON activitycontinuation
ключ.
В итоге вот как выглядит наш json:
{
"webcredentials": {
"apps": ["TeamID.bundleIdentifier"]
},
"activitycontinuation": {
"apps": ["TeamID.bundleIdentifier"]
}
}
Обязательно проверяйте свой json всегда (попробуйте http://jsonlint.com/ для этого), так как неверный json может легко стать причиной ошибок и проблем.
Имейте эту проблему также с бонусом также заставляя Universal Links работать в iOS 9. Пробовал все выше, и все еще не смог заставить это работать надежно.
Кажется, медленно подбирать нативную опцию поверх опции продолжения браузера.
Также кажется, что обновление кеша apple-app-site-association происходит медленно, поэтому вы можете изменить его и какое-то время не видеть никаких изменений.
Одна странность: похоже, что Universal Links возвращает activity.webpageURL.host как "www.example.com", тогда как handoff возвращает "example.com".
Обновление: это работает намного лучше, если вы используете Safari в качестве браузера вместо Chrome. Восстанавливает передачу намного быстрее и надежнее.