Ответ 1
Предыдущий ответ - это частичная реализация Universal Links, в которой отсутствуют важные детали и нет запасного варианта в App Store.
Во-первых, вы больше не можете устанавливать iframe src для запуска схемы URI. Вы правильно определили эту проблему. Как вы заметили, вы все же можете установить window.location = 'custom-protocol://my-app';
. Поэтому, если вы знаете, что у пользователя есть ваше приложение, потому что вы ранее открыли его приложение из браузера и сохранили файл cookie, который можно найти на вашем бэкэнде, вы все равно можете безопасно запустить custom-protocol://
.
Во-вторых, вы можете обнаружить строку агента пользователя, используя navigator.userAgent. До iOS 9 вы все еще можете использовать iframe для запуска схемы URI, а затем использовать запасной после истечения времени ожидания. В iOS 9 вы можете выбрать, использовать ли схему URI или нет на основе файлов cookie, а затем отправить пользователя в App Store. Я работаю над этим в Branch и использую куки, чтобы вспомнить, есть ли у пользователя приложение, которое мы реализовали. Не стесняйтесь обращаться, если у вас есть дополнительные вопросы об этом, или напрямую использовать наше решение.
Реализация универсальных ссылок не так проста, как описывает другой ответ. На самом деле сложностей гораздо больше. Вот полный список шагов (я помогал нескольким приложениям интегрироваться в последние недели, используя эти шаги):
1. Настройте свое приложение для регистрации утвержденных доменов
я. Зарегистрируйте свое приложение на developer.apple.com, если у вас нет
II. Включите ‘Связанные домены в идентификаторе вашего приложения на developer.apple.com
III. Включить ‘Связанный домен в вашем проекте XCode
внутривенно Добавьте правильное право домена applinks:yourdomain.com
в свое приложение
2. Настройте свой веб-сайт для размещения файла ‘apple-app-site-association
я. Купите доменное имя или выберите из существующего
II. Получить SSL-сертификат для доменного имени (для этого вы можете использовать CloudFlare!)
III. Создать структурированный файл JSON SON apple-app-site-Ассоциации
{
"applinks": {
"apps": [ ],
"details": {
"TEAM-IDENTIFIER.YOUR.BUNDLE.IDENTIFIER": {
"paths": [
"*"
]
}
}
}
}
IV. Подпишите файл JSON с сертификатом SSL
v. Настройте файловый сервер
Файл apple-app-site-association: - должен быть отправлен с заголовком ‘application/pkcs7-mime - должен быть отправлен с конечной точки youdomain.com/apple-app-site-association - должен вернуть код http 200.
Пример Express + Node:
var aasa = fs.readFileSync(__dirname + '/static/apple-app-site-association');
app.get('/apple-app-site-association', function(req, res, next) {
res.set('Content-Type', 'application/pkcs7-mime');
res.status(200).send(aasa);
});
кредит: заимствовано из этого сообщения в блоге