2010-08-19 8 views
8

Jako użytkownik bardzo podoba mi się to, jak witryna Apple App Store w przeglądarce może stwierdzić, czy mam zainstalowany program iTunes, czy też nie, i że może działać zgodnie z tym.W jaki sposób witryna App Store wie, czy iTunes jest zainstalowany?

Na przykład, jeśli pójdę do strony App niczym "Remember The Milk": http://itunes.apple.com/app/remember-the-milk/id293561396?mt=8 a następnie kliknij na "Zobacz w iTunes" przycisku

  1. Jeśli mam zainstalowany iTunes, to będzie uruchom łącze w iTunes
  2. Jeśli nie mam iTunes, zostanie przekierowany do strony, która pozwala mi wiedzieć, że najpierw muszę pobrać/zainstalować iTunes.

Próbuję zrobić coś bardzo podobnego z naszym produktem. Sprawdziliśmy, że używamy procoli, takich jak nazwa_aplikacji: // url_to_open i działa to bardzo dobrze, jeśli użytkownik ma już zainstalowany program i jest do niego zarejestrowany protokół URL.

Jeśli jednak nie, otrzymają komunikat o błędzie, który nie mówi im, czego konkretnie potrzebują.

Chciałbym mieć więcej doświadczenia z iTunes, w którym mogę pomóc użytkownikom w bardziej informatywny sposób.

Odpowiedz

8

Przeglądając zasoby JavaScript powiązane z tą stroną, dostępna jest funkcja o nazwie "DetectItunesDetected". Wydaje:

  • sprawdzić, czy plik cookie o nazwie „iTunesPresent” jest ustawiona, a komputer to Macintosh (zaznaczając agenta użytkownika)
  • sprawdzić, czy Internet Explorer jest uruchomiony (ponownie, aplikacja kliencka) a komponent ActiveX iTunes jest zainstalowany
  • Sprawdź, czy Firefox działa, a zainstalowana jest wtyczka iTunes dla przeglądarek opartych na Mozilli.

Jeśli funkcja zwraca wartość true, zastępuje odpowiednie łącza HTTP wariantami ITMS.

0

Strona internetowa nie wie, korzysta z protokołu itms.

Aby utworzyć własną, musisz zarejestrować swoją aplikację w systemie operacyjnym i określić, z którym protokołem będzie on obsługiwał. A good article on that. Objaśnienie okien działa we wszystkich przeglądarkach (które korzystają z rejestru). Inne są tylko dla firefox.

0

Nie mogę tego przetestować w tej chwili, ale możesz spróbować załadować obraz ze swojej aplikacji za pomocą protokołu, jeśli obraz nie może być załadowany, przekierowanie.

<img src='yourProtocol://image.jpg' onerror='window.location="yoursite.com/pageiffails.php";' /> 
Powiązane problemy