iOS10からopenURLが非推奨になったので、新しいメソッドに置き換えました。
- 旧記法
UIApplication.shared.openURL(URL(string: "https://google.co.jp")!)
- 新記法
UIApplication.shared.open(URL(string: "https://google.co.jp")!, options: [:], completionHandler: nil)
completionHandler
は遷移完了or遷移失敗したタイミングで呼ばれます。
引数は遷移が成功したかどうかの結果がBoolで渡されます。
UIApplication.shared.open(URL(string: "https://google.co.jp")!, options: [:], completionHandler: { result in print(result) // → true })
下のように遷移失敗するとresultにfalseが入ります。
UIApplication.shared.open(URL(string: "hoge://")!, options: [:], completionHandler: { result in print(result) // → false })
optionsは現在UIApplicationOpenURLOptionUniversalLinksOnly
のみサポートされています。
trueを渡すと、UniversalLink以外開けなくなります。
デフォルト値はfalseです。
UIApplication.shared.open(URL(string: "https://google.co.jp")!, options: [ UIApplicationOpenURLOptionUniversalLinksOnly: NSNumber(value: true)], completionHandler: nil)
UIApplicationOpenURLOptionUniversalLinksOnlyにはBool値を直接渡す事もできました。
UIApplication.shared.open(URL(string: "https://google.co.jp")!, options: [ UIApplicationOpenURLOptionUniversalLinksOnly: true], completionHandler: nil)
オプション一覧は下URLに記載されています。