Tak, jest to całkowicie możliwe. Musisz zarejestrować schemat URL dla swojej aplikacji.
Wybierz projekt aplikacji w Xcode, kliknij cel, a na karcie Informacje zarejestruj nowy schemat URL.
Identyfikator jest Twój identyfikator aplikacji jak com.company.AppName i schemat URL jest nazwą chcesz używać, jak appName
Teraz jako idealnego rozwiązania, jak jesteśmy dodając to teraz do naszej aplikacji , najlepiej NIE wysyłać linków w wiadomości e-mail przy użyciu własnego schematu. Powodem jest to, że użytkownik może otworzyć go z komputera, więc ten link nie będzie działał.
Najlepszy scenariusz jest następujący:
- Gdy aplikacja jest uruchamiany po raz pierwszy, otwarty od withing aplikacja przeglądarkę Safari i wysłać go na swojej stronie.
- W witrynie, należy zainstalować plik cookie dla Safari (jak myAppIsInstalled)
- W tej samej stronie, kick użytkownika z powrotem do aplikacji, po prostu przekierowanie go do swojej aplikacji z niestandardowego schematu URL, jak
appname://
teraz możesz wysłać w wiadomości e-mail z łączy z normalną URL linkujące do swojej stronie i tu część 2:
- w swojej stronie sprawdzić, czy jest zainstalowana aplikacja (plik cookie jest obecny)
Jeśli jest obecny, zamiast otworzyć odnośnik na swojej witrynie, przekierować użytkownika do aplikacji, z odpowiednimi wartościami, jak
appname: // skrzynki sender_is = 123 & nazwa_użytkownika = Lefteris
gwarantuje linki e-mail zawsze będzie działać i że można otworzyć z Mobile Safari linki tylko wtedy, gdy aplikacja została zainstalowana na urządzeniu ...
Wreszcie, tylko uwaga, schemat URL jest appname://
i nie http://appname
Teraz wyjaśnić część 1 lepszy w naszym AppDelegate, możemy to zrobić w delegata - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
:
//if user has not set the app installed cookie, set it now.
bool hasAppInstalledCookie = [[NSUserDefaults standardUserDefaults] boolForKey:@"appInstalledCookie"];
if (!hasAppInstalledCookie) {
//mark it was set
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"appInstalledCookie"];
[[NSUserDefaults standardUserDefaults] synchronize];
//open the web browser
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.myApp.com/appInstalled"]];
}
Teraz w naszej appInsalled stronie (indeks.html na przykład), po prostu ustawić cookies (dowolną nazwę pliku cookie chcemy) potem kopać użytkownika z powrotem do naszej aplikacji tak:
<script type="text/javascript">
window.location = 'appName://';
</script>
Powodem używamy plików cookie, jest użycie tego cookie , gdy użytkownik otworzy link e-mail. Sprawdzimy, czy przeglądarka jest mobilna w Safari ORAZ czy plik cookie jest zainstalowany. W ten sposób wiemy, że użytkownik zainstalował naszą aplikację, a przekierowanie będzie działać poprawnie.
Tak, nazywa się to [schemat niestandardowego adresu URL] (http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW50). – ceejayoz
@ceejayoz Dzięki, opublikuj jako odpowiedź, a ja to zaakceptuję. – Eugene
@Eugene Mam do czynienia z tym samym problemem. Czy możesz mi powiedzieć, jak rozwiązałeś? Mam rozwiązanie Lefteris, ale w jaki sposób mogę przekierować z Safari do aplikacji? Gdzie można wywołać ten plik .html? – Krunal