ในไฟล์ info.plist ฉันกำหนดค่าURL Identifier
และURL Scheme
ประสบความสำเร็จ นอกจากนี้ฉันสามารถเปิดแอปโดยใช้ URL ที่กำหนดเอง ปัญหาคือเมื่อแอปเปิดใช้วิธีการครั้งแรก
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) does not call.
ฉันมีฟังก์ชั่นบางอย่างขึ้นอยู่กับวิธีข้างต้น ดังนั้นเมื่อเปิดตัวแอพครั้งแรกฉันไม่เห็นอะไรเลยในแอพของฉัน
ฉันยังเพิ่มรหัสในวิธี
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }
let url = connectionOptions.urlContexts.first?.url
}
แต่ฉันได้รับ ur เป็นศูนย์ที่นี่
อย่างไรก็ตามหากแอพของฉันอยู่ในโหมดแบ็กกราวน์และฉันกด URL วิธีการดังกล่าวข้างต้นก็ประสบความสำเร็จ ต่อไปนี้เป็นรหัสของฉันเกี่ยวกับวิธีการในscene(_:openURLContexts:)
sceneDelegate
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>){
let url = URLContexts.first?.url
let urlString: String = url!.absoluteString
if let urlComponents = URLComponents(string: urlString),let queryItems = urlComponents.queryItems {
queryParams = queryItems
} else {
print("invalid url")
}
guard let windowScene = (scene as? UIWindowScene) else { return }
self.window = UIWindow(windowScene: windowScene)
//self.window = UIWindow(frame: UIScreen.main.bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
guard let rootVC = storyboard.instantiateViewController(identifier: "LocationViewIdentifier") as? UIViewController else {
print("ViewController not found")
return
}
let rootNC = UINavigationController(rootViewController: rootVC)
self.window?.rootViewController = rootNC
self.window?.makeKeyAndVisible()
}
ทุกคนสามารถบอกฉันได้ไหมว่าทำไมครั้งแรกที่วิธีข้างต้นไม่ได้โทร