Chciałbym mieć iOS do otwierania adresów URL z mojej domeny (np. Http://martijnthe.nl ) z moją aplikacją za każdym razem, gdy aplikacja jest zainstalowana na telefonie, oraz z Mobile Safari, jeśli tak nie jest.
Czytam, że można utworzyć w tym celu unikalny sufiks protokołu i zarejestrować go w Info.plist, ale Mobile Safari wyświetli błąd, jeśli aplikacja nie zostanie zainstalowana.
Co byłoby obejściem?
Jeden pomysł:
1) Użyj adresów URL http: //, które otwierają się w dowolnej przeglądarce na komputerze i wyświetlają usługę za pośrednictwem przeglądarki
2) Sprawdź User-Agent, a jeśli jest to Mobile Safari, otwórz myprotocol: // URL do (próba) otwarcia aplikacji na iPhone'a i niech Mobile iTunes do pobrania aplikacji na wypadek, gdyby próba się nie powiodła
Nie wiesz, czy to zadziała ... sugestie? Dzięki!
Odpowiedzi:
Myślę, że najmniej inwazyjny sposób to zrobić:
appInstalled
plik cookiewindow.location
nayour-uri://
(lub wykonaj stronę przekierowującą)your-uri://
Inną opcją, w którą grałem, ale okazałem się trochę niezręczny, było wykonanie następujących czynności w Javascript:
źródło
window.location="custom-uri://
powiedzie, limit czasu rezerwowego nie jest zabijany. Gdy użytkownik powróci do przeglądarki z aplikacji, minutnik nadal tam jest i uruchomi link do sklepu z aplikacjami. Jest to słaba wygoda użytkowania.Jest to całkiem możliwe, aby to zrobić w JavaScript, o ile twoja awaria jest kolejnym applink. Opierając się na sugestii Nathana :
Sprawdź demo na żywo tutaj .
źródło
W przypadku urządzeń z systemem iOS 6 istnieje opcja: promowanie aplikacji za pomocą banerów inteligentnych aplikacji
źródło
Stwierdziłem, że wybrana odpowiedź działa z aplikacjami przeglądarki, ale miałem problemy z kodem działającym w aplikacjach innych niż przeglądarka, które implementują
UIWebView
.Problemem było dla mnie, że użytkownik aplikacji na Twitterze kliknąłby link prowadzący do mojej witryny za pośrednictwem
UIWebView
aplikacji na Twitterze. Następnie, kiedy kliknęli przycisk z mojej strony, Twitter próbuje być fantazyjny i wypełnia tylko,window.location
jeśli strona jest dostępna. Więc co się dzieje, jest toUIAlertView
pop up mówiąc, jesteś pewien, że chcesz kontynuować, a następnie od razu przekierowuje do App Store bez drugiego popup.Moje rozwiązanie dotyczy ramek iframe. Pozwala to uniknąć
UIAlertView
prezentacji, zapewniając łatwą i elegancką obsługę.jQuery
JavaScript
EDYTOWAĆ:
Dodaj pozycję bezwzględną do elementu iframe, aby po wstawieniu na dole strony nie było przypadkowej spacji.
Należy również zauważyć, że nie znalazłem potrzeby takiego podejścia w przypadku Androida. Korzystanie
window.location.href
powinno działać dobrze.źródło
W iOS9 Apple wreszcie wprowadziło możliwość zarejestrowania aplikacji do obsługi określonych
http://
adresów URL: Uniwersalne łącza .Bardzo przybliżone wyjaśnienie, jak to działa:
http://
adresów URL dla niektórych domen (adresów URL) w swojej aplikacji.http://
adresów URL w celu instalacji, jak wyjaśniono powyżej, i automatycznie otwiera poprawną aplikację, jeśli jest zainstalowana; bez wcześniejszego przeglądania Safari ...To najczystszy sposób na głębokie linkowanie na iOS, niestety działa tylko w iOS9 i nowszych ...
źródło
BUDOWA Ponownie na odpowiedź Nathana i JB:
Jak uruchomić aplikację z adresu URL bez dodatkowego kliknięcia Jeśli wolisz rozwiązanie, które nie zawiera przejściowego kroku kliknięcia łącza, możesz użyć następujących opcji. Za pomocą tego javascript mogłem zwrócić obiekt Httpresponse z Django / Python, który pomyślnie uruchamia aplikację, jeśli jest zainstalowana lub alternatywnie uruchamia sklep z aplikacjami w przypadku przekroczenia limitu czasu. Uwaga: Musiałem także dostosować limit czasu z 500 do 100, aby działał na iPhonie 4S. Przetestuj i popraw, aby dostosować go do swojej sytuacji.
źródło
document.webkitHidden
jest wykrywanie, czy twoja aplikacja jest już wywołana, a bieżąca karta Safari przechodzi do tła, ten kod pochodzi z www.baidu.comźródło
appurl
iweburl
może rozwiązać problemJeśli dodasz
iframe
na swojej stronie internetowej zsrc
niestandardowym schematem dla swojej aplikacji, iOS automatycznie przekieruje do tej lokalizacji w aplikacji. Jeśli aplikacja nie zostanie zainstalowana, nic się nie stanie. Pozwala to na głębokie łącze do aplikacji, jeśli jest zainstalowana, lub przekierowanie do App Store, jeśli nie jest zainstalowana.Na przykład, jeśli masz zainstalowaną aplikację Twitter i przejdź do strony internetowej zawierającej następujący znacznik, natychmiast zostaniesz przekierowany do aplikacji.
Oto dokładniejszy przykład, który przekierowuje do sklepu App Store, jeśli aplikacja nie jest zainstalowana:
źródło
Oto rozwiązanie.
Sytuacja logiczna za pomocą rozmycia i ostrości
Powiąż swój link za pomocą procedury obsługi kliknięć jquery, która wywołuje coś takiego.
jeśli aplikacja się otworzy, stracimy skupienie na oknie i minutnik się skończy. w przeciwnym razie nic nie dostaniemy i załadujemy zwykły adres URL na Facebooku.
źródło
O ile mi wiadomo, nie możesz sprawić, by cały system operacyjny zrozumiał
http:
adres URL domeny +. Możesz zarejestrować tylko nowe schematy (używamx-darkslide:
w mojej aplikacji). Jeśli aplikacja jest zainstalowana, Mobile Safari uruchomi ją poprawnie.Musisz jednak poradzić sobie z przypadkiem, w którym aplikacja nie jest zainstalowana, z komunikatem „Nadal tu jesteś? Kliknij ten link, aby pobrać aplikację z iTunes”. na twojej stronie internetowej.
źródło
http
adresów URLWydaje mi się to rozsądnym podejściem, ale nie sądzę, że będziesz w stanie uruchomić mobilne iTunes jako drugi ośrodek. Myślę, że będziesz musiał wybrać jedno lub drugie - przekieruj do swojej aplikacji lub iTunes.
tzn. jeśli przekierujesz na myprotocol: //, a aplikacji nie ma na telefonie, nie dostaniesz drugiej szansy na przekierowanie do iTunes.
Być może możesz najpierw przekierować na stronę docelową (zoptymalizowaną dla iPhone'a) i dać użytkownikowi opcję kliknięcia Twojej aplikacji lub iTunes, aby uzyskać aplikację, jeśli jej nie ma? Będziesz jednak polegał na tym, że użytkownik zrobi tam właściwą rzecz. (Edycja: chociaż można ustawić ciasteczko, aby było to po raz pierwszy?)
źródło
Próbując rozwiązać problem wyskakujących okienek, odkryłem, że Apple ma rozwiązanie tego problemu.
Rzeczywiście, po kliknięciu tego linku aplikacja zainstalowana zostanie przekierowana na nią; w przeciwnym razie nastąpi przekierowanie na stronę internetową bez wyskakującego okienka.
źródło