私はこの問題で同様のケースを持っていますiOS: apple universal link if app is not open?。ユニバーサルリンクをクリックすると、アプリがバックグラウンドでない場合は、func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {}
に入ることができませんでした。アプリがバックグラウンドにないときに開いているユニバーサルリンク
didFinishLaunchingWithOptions
にいくつかのコードを追加しました。しかし、それは動作していません。もしも誰かが助けてくれたらありがとう。アプリデリゲートで
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let activityDic = launchOptions?[UIApplicationLaunchOptionsKey.userActivityDictionary]
if activityDic != nil {
// Continue activity here
self.window?.rootViewController?.restoreUserActivityState(activityDic as! NSUserActivity)
}
return true
}
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
if let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "xxx") as? XXXTableViewController {
if let window = self.window, let rootViewController = window.rootViewController {
var currentController = rootViewController
while let presentedController = currentController.presentedViewController {
currentController = presentedController
}
currentController.present(controller, animated: true, completion: nil)
}
}
}
return true
}
は、ご返信いただきありがとうございます。私は試してみましたが、AppDelegateにはメンバーhandleOpenURLWhenAppIsNotOpenはありません。私が間違って入力した場合はごめんなさい。 – ray
handleOpenURLWhenAppIsNotOpenは、好きなもの(現在のログイン画面やアプリ内の他の画面)を書くことができる私のカスタムメソッドです。私の場合は、init tabBarControllerを選択し、4つのタブ –