- 11 Jun 2024
- 3 Minuten zu lesen
-
Drucken
-
DunkelLicht
-
pdf
Wie richte ich einen Deep-Link in iOS ein?
- Aktualisiert am 11 Jun 2024
- 3 Minuten zu lesen
-
Drucken
-
DunkelLicht
-
pdf
Deep link ermöglicht es Ihnen, direkt zu dem Inhalt in Ihrer App selbst zu verlinken. Sie können einen Deeplink in Whatfix Mobile-Projekten wie Walkthrough, Pop-ups usw. einbetten und innerhalb von Projektelementen wie Buttons, Texten usw. Sobald das Element angeklickt wird, öffnet sich die hinzugefügte Deep-Link-Seite.
Einen Deep Link einrichten
Fügen Sie das URL-Schema zu Ihrem Projekt hinzu:
-
Öffnen Sie Ihr Projekt.xcodeproj. Unter Ziele wählen Sie Ihre App und gehen Sie zum Info-Bereich.
-
Scrollen Sie nach unten, um die URL-Typen zu sehen, und klicken Sie +, um einen neuen URL-Typ hinzuzufügen.
-
Fügen Sie den Namen Ihrer App oder einen beliebigen gewünschten Namen im URL-Schema-Feld hinzu. Dies ist Ihr schemeName.
-
Fügen Sie den Bundle-Identifier Ihrer App oder einen beliebigen eindeutigen Identifier in das Feld für den Identifier ein.
Dies ist kein obligatorischer Schritt.
Unter iOS 13
- Fügen Sie die open-URL-Methode in der AppDelegate.swift-Datei hinzu.
- Im Whatfix Mobile Dashboard verwenden Sie das Format schemeName://pageName. Beispiel: demoApp://profile
- Wenn das schemeName in Ihren Projekt-URL-Schemes mit dem Dashboard schemeName übereinstimmt, wird der Benutzer zur folgenden Methode weitergeleitet. Wenn Sie eine Profilseite haben und die Möglichkeit zum Hinzufügen von Deep Links wünschen, verwenden Sie den folgenden Code-Snippet,
// AppDelegate.swift
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : An] = [:]) -> Bool {
guard let components = NSURLComponents(url: url, resolvingAgainstBaseURL: true),
let host = components.host else {
return false
}
// Extract host. Host ist Ihre pageName. Basierend auf dem Hostnamen gehen Sie zur
// gewünschten Ansicht oder zum Ansichts-Controller wie unten oder Sie können es auf Ihre Weise tun, basierend
// auf der Architektur Ihrer App.
guard let deeplink = DeepLink(rawValue: host) else {
return
}
mainController?.handleDeeplink(deeplink)
return true
}
// global type
enum DeepLink: String {
case home
case profile
}
// MainController.swift
func handleDeeplink(_ deeplink: DeepLink) {
switch deeplink {
case .home:
let vc = UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "HomeViewController") as? HomeViewController
self.navigationController?.pushViewController(vc!, animated: true)
case .profile:
let vc = UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "ProfileViewController") as? ProfileViewController
self.navigationController?.pushViewController(vc!, animated: true)
}
}
iOS 13 und höher
- Fügen Sie die open URLContexts Methode in der SceneDelegate.swift Datei hinzu
- Im Whatfix Mobile Dashboard verwenden Sie das Format schemeName://pageName. Beispiel: demoApp://profile
- Wenn das schemeName in Ihren Projekt-URL-Schemes mit dem Dashboard schemeName übereinstimmt, wird der Benutzer zur folgenden Methode weitergeleitet. Wenn Sie eine Profilseite haben und die Möglichkeit zum Hinzufügen von Deep Links wünschen, verwenden Sie den folgenden Code-Snippet,
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let url = URLContexts.first?.url else { return }
guard let components = NSURLComponents(url: url, resolvingAgainstBaseURL: true),
let host = components.host else {
return
}
// Extract host. Host ist Ihre pageName. Basierend auf dem Hostnamen gehen Sie zur
// gewünschten Ansicht oder zum Ansichts-Controller wie unten oder Sie können es auf Ihre Weise tun, basierend
// auf der Architektur Ihrer App.
guard let deeplink = DeepLink(rawValue: host) else {
return
}
mainController?.handleDeeplink(deeplink)
}
// global type
enum DeepLink: String {
case home
case profile
}
// MainController.swift
func handleDeeplink(_ deeplink: DeepLink) {
switch deeplink {
case .home:
let vc = UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "HomeViewController") as? HomeViewController
self.navigationController?.pushViewController(vc!, animated: true)
case .profile:
let vc = UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "ProfileViewController") as? ProfileViewController
self.navigationController?.pushViewController(vc!, animated: true)
}
}
Deep links im Flow-Menü
Beim Konfigurieren eines Flow-Menüs (d.h. Walkthrough-Checklist/Walkthrough-Menüs) können Sie für ein bestimmtes Menüelement einen Deep Link hinzufügen. Es ist besser, wenn ein bestimmtes Menüelement des Flowmenüs auf einer anderen Seite konfiguriert ist (nicht dieselbe wie der Startbildschirm). Mit Hilfe eines Deep Links kann das Whatfix Mobile SDK zur erforderlichen Seite gehen.
Berücksichtigen Sie, dass Sie einen Deep Link in einer Anleitung Checkliste hinzufügen möchten,
Der Menüpunkt Profil ist auf einer anderen Seite konfiguriert (nicht identisch mit dem Startbildschirm). Um zur erforderlichen Seite zu gelangen, können Sie den Deep Link hinzufügen, indem Sie die folgenden Schritte verwenden,
- Klicken Sie Profil.
- Auf der rechten Seite, unter dem DEEPLINK -Abschnitt, fügen Sie Ihre konfigurierte Deep-Link-URL hinzu.
Das folgende Bild zeigt das Hinzufügen eines Deep Links im Dashboard mit dem Format schemeName://pageName,