iOS
Deep Linking in iOS
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:
- Registrieren Sie ein URL-Schema in der
Info.plist
Datei Ihrer App, damit das System weiß, wann eine URL an Ihre App weitergeleitet wird. - Fügen Sie Ihrem
UIApplicationDelegate
eine FunktionUIApplicationDelegate
, die eingehende URLs akzeptiert und verarbeitet. - 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 (+):
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!
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
!
Einrichten eines Deeplinks für Ihre App
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.
Ermöglicht das Erstellen eines Projekts und den Namen DeepLinkPOC.
Wählen Sie nun Ihr Projektziel aus.
Wählen Sie nach der Auswahl des Ziels die Registerkarte "Info" aus.
Scrollen Sie nach unten, bis eine Option für URL-Typen angezeigt wird
Klicken Sie auf die Option "+".
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.
- 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.
- 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
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.)
Sie erhalten eine Nachricht "Wartet auf den Start von DeepLinkPOC (oder den Namen Ihrer App)".
Ö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 :)