Я бы хотел, чтобы iOS открывала URL-адреса из моего домена (например, http://martijnthe.nl ) с моим приложением, когда приложение установлено на телефоне, и с Mobile Safari, если это не так.
Я читал, что для этого можно создать уникальный суффикс протокола и зарегистрировать его в Info.plist, но Mobile Safari выдаст ошибку в случае, если приложение не установлено.
Что бы обойти?
Одна идея:
1) Используйте http: // URL, которые открываются в любом настольном браузере и предоставляют сервис через браузер
2) Проверьте User-Agent и, если это Mobile Safari, откройте myprotocol: // URL, чтобы (попытаться) открыть приложение iPhone, и откройте Mobile iTunes для загрузки приложения в случае неудачной попытки.
Не уверен, что это сработает ... предложения? Спасибо!
Ответы:
Я думаю, что наименее навязчивый способ сделать это заключается в следующем:
appInstalled
печеньеwindow.location
значениеyour-uri://
(или выполните перенаправление на стороне сервера)your-uri://
Другой вариант, с которым я поиграл, но нашел немного неуклюжим, заключался в том, чтобы сделать следующее в Javascript:
источник
window.location="custom-uri://
успешном завершении резервный таймаут не уничтожается. Когда пользователь возвращается в браузер из вашего приложения, таймер все еще там и запустит ссылку на магазин приложений. Это плохой пользовательский опыт.Это вполне возможно сделать в JavaScript, если ваш запасной вариант - еще одна ссылка на приложение. Опираясь на предложение Натана :
Проверьте живую демонстрацию здесь .
источник
Для устройств iOS 6 есть опция: Продвижение приложений с помощью смарт-баннеров приложений.
источник
Я обнаружил, что выбранный ответ работает для приложений браузера, но у меня были проблемы с кодом, работающим в не браузерных приложениях, которые реализуют
UIWebView
.Проблема для меня заключалась в том, что пользователь в приложении Twitter нажимал на ссылку, по которой он переходил на мой сайт через приложение
UIWebView
в приложении Twitter. Затем, когда они нажали кнопку на моем сайте, Твиттер пытается проявить фантазию и завершить, толькоwindow.location
если сайт доступен. В результатеUIAlertView
появляется всплывающее окно, в котором говорится, что вы хотите продолжить, а затем сразу же перенаправляетесь в App Store без второго всплывающего окна.Мое решение включает в себя iframes. Это позволяет избежать
UIAlertView
представления, что позволяет легко и элегантно работать с пользователем.JQuery
Javascript
РЕДАКТИРОВАТЬ:
Добавьте абсолютную позицию в iframe, чтобы при вставке не было случайных битов в нижней части страницы.
Также важно отметить, что я не нашел необходимости в этом подходе с Android. Использование
window.location.href
должно работать нормально.источник
В iOS9 Apple наконец-то представила возможность зарегистрировать ваше приложение для обработки определенных
http://
URL-адресов: универсальные ссылки .Очень грубое объяснение того, как это работает:
http://
URL-адресов для определенных доменов (веб-адресов) в вашем приложении.http://
URL-адреса для настройки, как описано выше, и автоматически открывает правильное приложение, если оно установлено; не пройдя сафари сначала ...Это самый чистый способ создания глубоких ссылок на iOS, к сожалению, он работает только в iOS9 и новее ...
источник
СТРОИТЕЛЬСТВО снова на ответе Натана и JB:
Как запустить приложение из URL без дополнительного клика Если вы предпочитаете решение, которое не включает промежуточный шаг щелчка по ссылке, можно использовать следующее. С помощью этого javascript я смог вернуть объект Httpresponse из Django / Python, который успешно запускает приложение, если оно установлено, или, альтернативно, запускает магазин приложений в случае тайм-аута. Обратите внимание, мне также нужно было настроить период ожидания от 500 до 100, чтобы это работало на iPhone 4S. Протестируйте и настройте его, чтобы он подходил для вашей ситуации.
источник
document.webkitHidden
чтобы определить, запущено ли уже ваше приложение, а текущая вкладка сафари переходит в фоновый режим, этот код взят с www.baidu.comисточник
appurl
иweburl
можете решить вашу проблемуЕсли вы добавите
iframe
на веб-страницу сsrc
установленной пользовательской схемой для своего приложения, iOS автоматически перенаправит в это место в приложении. Если приложение не установлено, ничего не произойдет. Это позволяет вам делать глубокие ссылки на приложение, если оно установлено, или перенаправлять в App Store, если оно не установлено.Например, если у вас установлено приложение twitter и вы перейдете на веб-страницу, содержащую следующую разметку, вы сразу будете направлены в приложение.
Вот более подробный пример, который перенаправляет в магазин приложений, если приложение не установлено:
источник
Вот решение.
Настройте логическое положение, используя размытие и фокус
Свяжите свою ссылку с обработчиком щелчков jquery, который вызывает что-то вроде этого.
если приложение откроется, мы потеряем фокус на окне и таймер закончится. в противном случае мы ничего не получаем и загружаем обычный URL-адрес Facebook.
источник
Насколько я знаю, вы не можете заставить всю ОС понимать
http:
URL + домена. Вы можете зарегистрировать только новые схемы (я используюx-darkslide:
в своем приложении). Если приложение установлено, Mobile Safari правильно его запустит.Однако вам придется обработать случай, когда приложение не установлено, с надписью «Все еще здесь? Нажмите эту ссылку, чтобы загрузить приложение из iTunes». на вашей веб-странице.
источник
http
URLЭто звучит разумно для меня, но я не думаю, что ты сможешь заставить его открывать мобильные itunes в качестве второго средства. Я думаю, вам придется выбрать один или другой - либо перенаправить на ваше приложение или Itunes.
то есть, если вы перенаправляете на myprotocol: //, а приложение отсутствует на телефоне, у вас не будет второго шанса перенаправить на itunes.
Возможно, вы могли бы сначала перенаправить на целевую страницу (оптимизированную для iphone) и дать пользователю возможность перейти к вашему приложению или к itunes, чтобы получить приложение, если у него его нет? Но вы будете полагаться на то, что пользователь поступит правильно. (Изменить: хотя вы могли бы установить cookie, чтобы это было только в первый раз?)
источник
Пытаясь решить проблему всплывающих окон, я обнаружил, что у Apple есть способ обойти эту проблему.
Действительно, когда вы нажимаете на эту ссылку , если вы установили приложение, оно перенаправляется на него; в противном случае вы будете перенаправлены на веб-страницу без всплывающего окна.
источник