im implémentant un lien profond est iOS. J'ai configuré le schéma d'URL dans Project-Setting-> Info-> Schémas d'URL de type URL: rôle carwash: Viewer
lorsque je tape carwash: // quelque chose que le navigateur demande pour ouvrir l'application, mais rien n'est appelé dans Application que je gère pour que l'action se produise.
La documentation Apple indique que vous devez remplacer l'application (URL ouverte) dans AppDelegate mais que le lien profond l'appelle et l'application s'ouvre dans le dernier état
application: openURL: options: 'n'est pas appelé
c'est mon code et la dose ne fonctionne pas
func application(_ app: UIApplication, open url: URL,
options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
fatalError()
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
if let url = launchOptions?[UIApplication.LaunchOptionsKey.url] as? URL {
/// some
fatalError()
}
GMSServices.provideAPIKey("")
return true
}
Simulateur Swift 5: iOS 13
Vous devez configurer vos liens profonds dans le fichier Info.plist
Exemple:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLName</key>
<string>carwash</string> // your identifier
<key>CFBundleURLSchemes</key>
<array>
<string>carwash</string> // schema
</array>
</dict>
</array>
Vous devez utiliser application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
Notez que vous n'avez aucune instruction return dans votre méthode
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
print("Got from URL: \(url)"
return true
}
Liens dans le simulateur à effectuer via le terminal
xcrun simctl openurl booted “carwasher://deeplink”