ディープリンクの実装はiOSです。 Project-Setting-> Info-> Url type URL SchemesでURLスキームを設定しました:carwash role:Viewer
carwash:// somethingと入力すると、ブラウザはアプリケーションを開くように求めますが、アプリケーションで何も呼び出されず、どのようなアクションが発生するかを処理します。
Appleのドキュメントには、AppDelegateでapplication(open url)をオーバーライドする必要があると記載されていますが、ディープリンクでそれを呼び出し、アプリケーションは最後の状態で開きます
application:openURL:options: 'が呼び出されていません
これは私のコードであり、機能しません
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
}
Swift 5シミュレーター:iOS 13
Info.plistファイルでディープリンクを設定する必要があります
例:
<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>
application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
を使用する必要があります
メソッドにreturnステートメントがないことに注意してください
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
print("Got from URL: \(url)"
return true
}
シミュレータでのリンクは、ターミナルから行うのが最適です
xcrun simctl openurl booted “carwasher://deeplink”