Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t在swift中获取firebase动态链接_Swift_Firebase_Firebase Dynamic Links - Fatal编程技术网

Can';t在swift中获取firebase动态链接

Can';t在swift中获取firebase动态链接,swift,firebase,firebase-dynamic-links,Swift,Firebase,Firebase Dynamic Links,我已经为我的firebase项目设置了动态链接,每个帖子都有一个动态链接。我可以将链接复制到Safari中,它会向我显示标题和所有正确的信息,然后我可以从链接打开应用程序,但由于某些原因,我无法在单击链接时显示某个控制器,也无法从下面的函数打印出任何内容。接收链接时遇到严重问题 ViewController-创建(运行良好!) AppDelegate-接收 func handleIncomingDynamicLink(_ dynamicLink: DynamicLink) { g

我已经为我的firebase项目设置了动态链接,每个帖子都有一个动态链接。我可以将链接复制到Safari中,它会向我显示标题和所有正确的信息,然后我可以从链接打开应用程序,但由于某些原因,我无法在单击链接时显示某个控制器,也无法从下面的函数打印出任何内容。接收链接时遇到严重问题

ViewController-创建(运行良好!)

AppDelegate-接收

    func handleIncomingDynamicLink(_ dynamicLink: DynamicLink) {
    guard let url = dynamicLink.url else { return }
    print("Incoming link is \(url.absoluteString)")

    guard let components = URLComponents(url: url, resolvingAgainstBaseURL: false) else { return }
    guard let queryItems = components.queryItems else { return }

    if components.path == "/posts" {
        //Load a specific event
        if let postIdQueryItem = queryItems.first(where: {$0.name == "postId"}) {
            guard let postId = postIdQueryItem.value else { return }
            let homeController = HomeController()
            homeController.presentAlert()
        }
    }
}

func application(_ application: UIApplication, contuine userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    if let incomingUrl = userActivity.webpageURL {
        print("Incoming URL is \(incomingUrl)")
        let linkHandled = DynamicLinks.dynamicLinks().handleUniversalLink(incomingUrl) { (dynamicLink, error) in

            if let error = error {
                return
            }

            if let dynamicLink = dynamicLink {
                self.handleIncomingDynamicLink(dynamicLink)
            }
        }
        return linkHandled
    }
    return false
}


func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
        self.handleIncomingDynamicLink(dynamicLink)
        return true
    } else {
        return false
    }
}

这可能意味着动态链接中的
url
对象为nil,如果它仅发生在iOS 13中,则此问题可能会有所帮助:另外,请确保您正在将Firebase吊舱更新到最新版本
    func handleIncomingDynamicLink(_ dynamicLink: DynamicLink) {
    guard let url = dynamicLink.url else { return }
    print("Incoming link is \(url.absoluteString)")

    guard let components = URLComponents(url: url, resolvingAgainstBaseURL: false) else { return }
    guard let queryItems = components.queryItems else { return }

    if components.path == "/posts" {
        //Load a specific event
        if let postIdQueryItem = queryItems.first(where: {$0.name == "postId"}) {
            guard let postId = postIdQueryItem.value else { return }
            let homeController = HomeController()
            homeController.presentAlert()
        }
    }
}

func application(_ application: UIApplication, contuine userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    if let incomingUrl = userActivity.webpageURL {
        print("Incoming URL is \(incomingUrl)")
        let linkHandled = DynamicLinks.dynamicLinks().handleUniversalLink(incomingUrl) { (dynamicLink, error) in

            if let error = error {
                return
            }

            if let dynamicLink = dynamicLink {
                self.handleIncomingDynamicLink(dynamicLink)
            }
        }
        return linkHandled
    }
    return false
}


func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
        self.handleIncomingDynamicLink(dynamicLink)
        return true
    } else {
        return false
    }
}