Szukaj…


Uwagi

Przydatna dokumentacja Apple z przykładami i wyjaśnieniami.

Otwieranie aplikacji na podstawie schematu URL

Aby otworzyć aplikację ze zdefiniowanym schematem URL todolist:// :

Cel C

NSURL *myURL = [NSURL URLWithString:@"todolist://there/is/something/to/do"];
[[UIApplication sharedApplication] openURL:myURL];

Szybki

let stringURL = "todolist://there/is/something/to/do"
if let url = NSURL(string: stringURL) {
    UIApplication.shared().openURL(url)
}

HTML

<a href="todolist://there/is/something/to/do">New SMS Message</a>

Uwaga: Przydatne jest sprawdzenie, czy link można otworzyć, aby w inny sposób wyświetlić odpowiednią wiadomość dla użytkownika. Można to zrobić za pomocą metody canOpenURL:

Dodanie schematu URL do własnej aplikacji

Załóżmy, że pracujesz nad aplikacją o nazwie MyTasks i chcesz zezwolić, aby przychodzące adresy URL tworzyły nowe zadanie z tytułem i MyTasks . Zaprojektowany adres URL może wyglądać mniej więcej tak:

mytasks://create?title=hello&body=world

(Oczywiście parametry text i body służą do wypełnienia naszego zadania, które tworzymy!)

Oto wielkie kroki do dodania tego schematu URL do swojego projektu:

  1. Zarejestruj schemat adresów URL w pliku Info.plist aplikacji, aby system wiedział, kiedy skierować adres URL do aplikacji.
  2. Dodaj funkcję do UIApplicationDelegate która akceptuje i obsługuje przychodzące adresy URL.
  3. Wykonaj dowolne zadanie, które musi się pojawić po otwarciu tego adresu URL.

Krok pierwszy: Zarejestruj schemat adresów URL w Info.plist:

Najpierw musimy dodać wpis „Typy adresów URL” do naszego pliku Info.plist. Kliknij przycisk (+) tutaj: dodając nowy wiersz do Info.plist

... a następnie wprowadź unikalny identyfikator aplikacji oraz schemat adresu URL, którego chcesz użyć. Być specyficznym! Nie chcesz, aby schemat URL kolidował z implementacją innej aplikacji. Lepiej tu być za długo niż za krótko! wypełnienie wpisu typu URL w Info.plist

Krok drugi: Obsługa adresu URL w UIApplicationDelegate

Musimy wdrożyć application:openURL:options: na naszej UIApplicationDelegate . Sprawdzimy przychodzący URL i sprawdzimy, czy możemy podjąć jakieś działanie!

Jedno wdrożenie byłoby następujące:

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
    if url.scheme == "mytasks" && url.host == "create" {
        let title = // get the title out of the URL's query using a method of your choice
        let body = // get the title out of the URL's query using a method of your choice
        self.rootViewController.createTaskWithTitle(title, body: body)
        return true
    }

    return false
}

Krok trzeci: Wykonaj zadanie w zależności od adresu URL.

Gdy użytkownik otwiera aplikację za pomocą adresu URL, prawdopodobnie spodziewał się, że coś się wydarzy. Może to przejście do fragmentu treści, może to tworzenie nowego elementu - w tym przykładzie utworzymy nowe zadanie w aplikacji!

W powyższym kodzie możemy zobaczyć wywołanie self.rootViewController.createTaskWithTitle(:body:) - więc zakładając, że twoja AppDelegate ma wskaźnik do kontrolera widoku głównego, który poprawnie implementuje funkcję, wszystko gotowe!

Konfigurowanie precyzyjnego linku do aplikacji

Konfiguracja precyzyjnego linkowania dla Twojej aplikacji jest łatwa. Potrzebujesz tylko małego adresu URL, za pomocą którego chcesz otworzyć aplikację.

Postępuj zgodnie z instrukcjami, aby skonfigurować precyzyjne linkowanie dla swojej aplikacji.

  1. Stwórzmy projekt i nazwijmy go DeepLinkPOC.

  2. Teraz wybierz cel projektu.

  3. Po wybraniu celu wybierz kartę „Informacje”.

  4. Przewiń w dół, aż zobaczysz opcję Typy adresów URL

  5. Kliknij opcję „+”.

  6. Zobaczysz schematy URL dodające ciąg, za pomocą którego chcesz otworzyć aplikację. Dodaj schematyDeepLinking ” do schematów URL.

Aby otworzyć aplikację, możesz ją uruchomić, wpisując w swoim safari „DeepLinking: //” . Łańcuch precyzyjnego linkowania ma następujący format.

[scheme]://[host]/[path]  --> DeepLinking://path/Page1

gdzie, Schemat: „DeepLinking” Host: „ścieżka” ścieżka: „Strona1”

Uwaga : nawet jeśli nie dodasz hosta i ścieżki, uruchomi aplikację, więc nie martw się, ale możesz dodać hosta i ścieżkę, aby dodatkowo przekierowywać na określoną stronę po uruchomieniu aplikacji.

  1. Teraz dodaj następującą metodę do swojej aplikacji.

Szybki:

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool 

Cel C:

-(BOOL)application:(UIApplication *)application
          openURL:(NSURL *)url
          sourceApplication:(NSString *)sourceApplication
          annotation:(id)annotation

Powyższa metoda jest wywoływana za każdym razem, gdy twoja aplikacja jest uruchamiana za pomocą łańcucha precyzyjnego ustawionego dla Twojej aplikacji.

  1. Teraz jest czas na zainstalowanie aplikacji, ale poczekaj, zanim przejdziesz bezpośrednio do przycisku uruchamiania. Zróbmy małą zmianę w metodzie uruchamiania aplikacji w schemacie.
  • Wybierz i edytuj swój schemat jako

wprowadź opis zdjęcia tutaj

  • zmień typ uruchamiania i zamknij wprowadź opis zdjęcia tutaj
  1. Teraz kliknij przycisk Uruchom (jeśli chcesz, możesz dodać punkt przerwania do metod didFinishLaunchingWithOptions i metod openURL, aby obserwować wartości)

  2. Zobaczysz komunikat „Oczekiwanie na uruchomienie DeepLinkPOC (lub nazwy aplikacji)”.

  3. Otwórz safari i wpisz „ DeepLinking: // ” w pasku wyszukiwania, wyświetli się monit „otwórz tę stronę w DeepLinkPOC” kliknij otwórz, aby uruchomić aplikację.

Mam nadzieję, że wiesz, jak skonfigurować precyzyjne linki do swojej aplikacji :)



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow