У меня есть веб-страница, на которой нужно проверить, существует ли приложение с использованием глубокой ссылки, но, похоже, оно работает не так, как должно. Я пробовал следующие вещи.
header('Location: exampleapp://param=test');
Использование перенаправления с использованием JavaScript (не работает)
var appurl = 'exampleapp://param=test';
var appstore = 'https://itunes.apple.com/us/app/...';
var timeout;
function preventPopup() {
clearTimeout(timeout);
timeout = null;
window.removeEventListener('pagehide', preventPopup);
}
function startApp() {
window.location = appurl;
timeout = setTimeout(function(){
if(confirm('You do not seem to have the App installed, do you want to go download it now?')){
document.location = appstore;
}
}, 100);
window.addEventListener('pagehide', preventPopup);
}
// app start is then called in the onload
То же, что и выше, но заменить строку window.location = appurl;
с document.getElementById('deeplink').click();
и добавив ссылку на веб-страницу HTML. (Работает) <a id="deeplink" href="exampleapp://param=test">Deep Link</a>
Есть ли причина, почему вы не можете перенаправить с помощью заголовка в PHP?
Версия PHP не работает из-за способа работы HTTP. Протокол HTTP не указывает, что он должен работать для перенаправления на другой протокол из заголовка «Location:». Здесь нет ничего специфического для PHP, это проблема HTTP.
Версия Javascript не работает, потому что вы хотели установить расположение окон. И окно не может отображать содержимое «exampleapp: // …». Вы хотите, чтобы ссылка открывалась, как когда пользователь нажимает на нее. Вместо того, чтобы использовать window.location
вы можете использовать document.location.href
, Это должно работать.
Другая проблема:
в своем коде вы пишете exampleapp://
в 1) и 2). А в 3) пишешь testapp://
— убедитесь, что вы используете один и тот же URL во всех трех случаях, так что вы можете быть уверены, что URL в конечном итоге может работать.
Ответ — использовать реализацию Apple под названием «Smart Banners».
<meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">
Вы можете включить в содержимое три параметра, разделенных запятыми
атрибут:app-id: (обязательно). Уникальный идентификатор вашего приложения. Чтобы найти идентификатор приложения
из iTunes Link Maker введите название своего приложения в поиске
и выберите соответствующую страну и тип носителя. в
Результаты поиска, найдите свое приложение и выберите ссылку на приложение для iPhone в столбце
право. Идентификатор вашего приложения — это девятизначное число между id и? Mt.
аффилированные данные: (Необязательно.) Строка аффилиата с iTunes, если вы
филиал iTunes. Если нет, узнайте больше о том, как стать
Партнер iTunes по адресу http://www.apple.com/itunes/affiliates/.
Аргумент приложения: (необязательно). URL-адрес, который предоставляет контекст для вашего нативного
приложение. Если вы включите это, и у пользователя будет установлено ваше приложение, она может
перейти с вашего сайта на соответствующую позицию в вашем приложении iOS.
Как правило, полезно сохранить навигационный контекст, потому что: если
пользователь глубоко в навигационной иерархии вашего сайта,
Вы можете передать весь URL документа, а затем проанализировать его в своем приложении
перенаправить ее в правильное место в вашем приложении. Если пользователь
выполняет поиск на вашем сайте, вы можете передать строку запроса так
что она может легко продолжить поиск в вашем приложении, не имея
повторить ее запрос. Если пользователь находится в процессе создания контента,
Вы можете передать идентификатор сеанса, чтобы загрузить состояние веб-сеанса в вашем
приложение, чтобы она могла неразрушающим образом возобновить свою работу. Вы можете создать
Аргумент приложения каждой страницы динамически с помощью серверного скрипта. Вы
можете отформатировать его по своему усмотрению, если это действительный URL.