Suche…


Bemerkungen

Nützliche Apple-Dokumentation mit Beispielen und Erläuterungen.

Öffnen einer App basierend auf ihrem URL-Schema

So öffnen Sie eine App mit definiertem URL-Schema todolist:// :

Ziel c

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

Schnell

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>

Hinweis: Es ist hilfreich zu prüfen, ob der Link geöffnet werden kann, um dem Benutzer eine entsprechende Meldung anzuzeigen. Dies kann mit der Methode canOpenURL: werden.

Hinzufügen eines URL-Schemas zu Ihrer eigenen App

MyTasks , Sie arbeiten an einer App namens MyTasks und möchten, dass eingehende URLs eine neue Aufgabe mit einem Titel und einem MyTasks erstellen. Die von Ihnen gestaltete URL könnte etwa so aussehen:

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

(Natürlich ist der text und body werden Parameter verwendet , um unsere Aufgabe zu füllen , die wir schaffen!)

Hier sind die großen Schritte zum Hinzufügen dieses URL-Schemas zu Ihrem Projekt:

  1. Registrieren Sie ein URL-Schema in der Info.plist Datei Ihrer App, damit das System weiß, wann eine URL an Ihre App weitergeleitet wird.
  2. Fügen Sie Ihrem UIApplicationDelegate eine Funktion UIApplicationDelegate , die eingehende URLs akzeptiert und verarbeitet.
  3. Führen Sie die Aufgaben aus, die beim Öffnen dieser URL erforderlich sind.

Schritt 1: Registrieren Sie ein URL-Schema in Info.plist:

Zuerst müssen wir unserer Info.plist-Datei einen Eintrag "URL Types" hinzufügen. Klicken Sie hier auf die Schaltfläche (+): Hinzufügen einer neuen Zeile zu Info.plist

Geben Sie dann eine eindeutige Kennung für Ihre App sowie das gewünschte URL-Schema ein. Sei präzise! Sie möchten nicht, dass das URL-Schema mit der Implementierung einer anderen App in Konflikt steht. Lieber hier zu lang sein als zu kurz! Füllen Sie den URL-Typeneintrag in Info.plist aus

Schritt 2: Behandeln Sie die URL in der UIApplicationDelegate

Wir müssen application:openURL:options: auf unserer UIApplicationDelegate . Wir prüfen die eingehende URL und sehen, ob es eine Aktion gibt, die wir ergreifen können!

Eine Implementierung wäre dies:

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
}

Schritt 3: Führen Sie je nach URL eine Aufgabe aus.

Wenn ein Benutzer Ihre App über eine URL öffnet, hat er wahrscheinlich erwartet, dass etwas passiert. Vielleicht navigieren Sie zu einem Inhalt, vielleicht erstellen Sie einen neuen Artikel - in diesem Beispiel erstellen wir eine neue Aufgabe in der App!

Im obigen Code können wir einen Aufruf an self.rootViewController.createTaskWithTitle(:body:) sehen. self.rootViewController.createTaskWithTitle(:body:) also davon ausgehen, dass Ihr AppDelegate einen Zeiger auf den Root-View-Controller hat, der die Funktion ordnungsgemäß implementiert, sind Sie AppDelegate !

Das Einrichten von Deep-Links für Ihre App ist einfach. Sie benötigen lediglich eine kleine URL, über die Sie Ihre App öffnen möchten.

Folgen Sie den Schritten, um eine Verknüpfung für Ihre App einzurichten.

  1. Ermöglicht das Erstellen eines Projekts und den Namen DeepLinkPOC.

  2. Wählen Sie nun Ihr Projektziel aus.

  3. Wählen Sie nach der Auswahl des Ziels die Registerkarte "Info" aus.

  4. Scrollen Sie nach unten, bis eine Option für URL-Typen angezeigt wird

  5. Klicken Sie auf die Option "+".

  6. URL-Schemata fügen eine Zeichenfolge hinzu, mit der Sie Ihre App öffnen möchten. Fügen Sie in URL-Schemata " DeepLinking " hinzu.

Um Ihre App zu öffnen, können Sie sie starten, indem Sie "DeepLinking: //" in Ihre Safari eingeben. Ihre Deep-Linking-Zeichenfolge hat folgendes Format.

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

wo, Schema: "DeepLinking" Host: "Pfad" Pfad: "Seite1"

Hinweis : Auch wenn Host und Pfad nicht hinzugefügt werden, wird die App gestartet, sodass Sie sich keine Sorgen machen müssen. Sie können jedoch Host und Pfad hinzufügen, um nach dem Start der Anwendung zusätzlich zu einer bestimmten Seite umzuleiten.

  1. Fügen Sie nun Ihrer Appdelegate folgende Methode hinzu.

Schnell:

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

Ziel c:

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

Die obige Methode wird aufgerufen, wenn Ihre App mit einer für Ihre App festgelegten Deep-Linking-Zeichenfolge gestartet wird.

  1. Nun ist es an der Zeit, Ihre App zu installieren, aber warten Sie, bevor Sie direkt zur Schaltfläche "Ausführen" springen. Lassen Sie die App-Startmethode des Schemas geringfügig ändern.
  • Wählen Sie Ihr Schema aus und bearbeiten Sie es als

Geben Sie hier die Bildbeschreibung ein

  • Startart ändern und schließen Geben Sie hier die Bildbeschreibung ein
  1. Klicken Sie nun auf die Schaltfläche Ausführen (wenn Sie möchten, können Sie Ihrem didFinishLaunchingWithOptions- und openURL-Verfahren einen Haltepunkt hinzufügen, um die Werte zu überwachen.)

  2. Sie erhalten eine Nachricht "Wartet auf den Start von DeepLinkPOC (oder den Namen Ihrer App)".

  3. Öffnen Sie die Safari und geben Sie " DeepLinking: // " in die Suchleiste ein. Daraufhin erscheint die Aufforderung "Diese Seite in DeepLinkPOC öffnen". Klicken Sie auf Öffnen, um Ihre App zu starten.

Ich hoffe, Sie haben gelernt, wie Sie die Verknüpfung für Ihre App einrichten können :)



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow