ios — Глубокая ссылка на приложение в PHP не работает

У меня есть веб-страница, на которой нужно проверить, существует ли приложение с использованием глубокой ссылки, но, похоже, оно работает не так, как должно. Я пробовал следующие вещи.

  1. Использование перенаправления в PHP (не работает)

header('Location: exampleapp://param=test');

  1. Использование перенаправления с использованием 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
    
  2. То же, что и выше, но заменить строку window.location = appurl; с document.getElementById('deeplink').click(); и добавив ссылку на веб-страницу HTML. (Работает) <a id="deeplink" href="exampleapp://param=test">Deep Link</a>

Есть ли причина, почему вы не можете перенаправить с помощью заголовка в PHP?

2

Решение

Версия PHP не работает из-за способа работы HTTP. Протокол HTTP не указывает, что он должен работать для перенаправления на другой протокол из заголовка «Location:». Здесь нет ничего специфического для PHP, это проблема HTTP.

Версия Javascript не работает, потому что вы хотели установить расположение окон. И окно не может отображать содержимое «exampleapp: // …». Вы хотите, чтобы ссылка открывалась, как когда пользователь нажимает на нее. Вместо того, чтобы использовать window.location вы можете использовать document.location.href, Это должно работать.

Другая проблема:
в своем коде вы пишете exampleapp:// в 1) и 2). А в 3) пишешь testapp:// — убедитесь, что вы используете один и тот же URL во всех трех случаях, так что вы можете быть уверены, что URL в конечном итоге может работать.

0

Другие решения

Ответ — использовать реализацию Apple под названием «Smart Banners».

Apple Smart Banner

<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.

https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/PromotingAppswithAppBanners/PromotingAppswithAppBanners.html

0

По вопросам рекламы [email protected]