Swift Firebase 动态链接:shortenURL 不起作用

Posted

技术标签:

【中文标题】Swift Firebase 动态链接:shortenURL 不起作用【英文标题】:Swift Firebase Dynamic Links: shortenURL not working 【发布时间】:2018-12-25 10:12:20 【问题描述】:

面临一些从 firebase 动态链接生成 shortURL 的问题,我能够获得 longDynamicLink url。但是

这是我的代码,我正在使用https://firebase.google.com/docs/dynamic-links/ios/create 按照以下步骤 DynamicLinkComponents.shortenURL 完成没有得到调用,也没有错误

guard let longDynamicLink = linkBuilder.url else  return "test" 
print("The long URL is: \(longDynamicLink)")

DynamicLinkComponents.shortenURL(longDynamicLink, options: nil)  url, warnings, error in
    guard let url = url, error != nil else  return 
    print("The short URL is: \(url)")

DynamicLinkComponents.shortenURL 这部分没有执行

【问题讨论】:

【参考方案1】:

试试这个代码。这段代码对我来说很好。

    let shareLink:String = "http://YourURL"

    guard let newSharelink = URL(string: shareLink) else  return 
    let components = DynamicLinkComponents.init(link: newSharelink, domain: "Your Domin From Genrated By Google Account(EX. = napu4u.app.goo.gl)")
    let iOSParams = DynamicLinkIOSParameters(bundleID: "YourBundle ID")
    iOSParams.appStoreID = "Your AppStore ID (Optional)"

    components.iOSParameters = iOSParams
    let options = DynamicLinkComponentsOptions()
    options.pathLength = .short
    components.options = options

    components.shorten  (shortURL, warnings, error) in

        if let error = error 
            print(error.localizedDescription)
            return
        

        let shortLink = shortURL
        print(shortLink)
    

【讨论】:

【参考方案2】:
    将此添加到 App Capabilities - Associated Domains 并输入 - applinks:yourdomain.com

    在你的 ViewController 中添加

    guard let link = URL(string: "https://www.yourdomain.com/share_location.html?Id=\(RandomID)&uid=\(uid)") else  return 
        let dynamicLinksDomain = "yourdomain.page.link"
    
    
        let components = DynamicLinkComponents(link: link, domain: dynamicLinksDomain)
        // [START shortLinkOptions]
        let options = DynamicLinkComponentsOptions()
        options.pathLength = .unguessable
        components.options = options
        // [END shortLinkOptions]
    
        // [START shortenLink]
        components.shorten  (shortURL, warnings, error) in
            // Handle shortURL.
            if let error = error 
                print(error.localizedDescription)
                return
            
            print(shortURL?.absoluteString ?? "")
            self.shortLink = shortURL
        
    

【讨论】:

以上是关于Swift Firebase 动态链接:shortenURL 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 动态链接在 safari swift 中不起作用

使用 JavaScript 创建 Firebase 动态链接

使用 FireBase 动态链接域创建 ShortLink

如何为 Firebase 项目配置动态链接?

Firebase 动态链接将自定义参数传递给 iOS 和 android

如何以编程方式在 Firebase 中创建动态链接?迅速