微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Firebase 动态链接短网址返回 nil ios

如何解决Firebase 动态链接短网址返回 nil ios

我遇到了 Firebase 动态链接的问题。该链接是从后端生成的。它在android中完美运行。但是在 iOS 中,当我在 iPhone 上的 whatsapp 或消息应用程序上共享动态链接时。并点击链接应用程序已打开。并且我们的以下函数在 Appdelegate 中被调用。然后使用接收到的 URL 调用 firebase 函数。并且 firebase 函数返回 nil。但是当我从 safari 应用程序打开该链接时,相同的 firebase 函数会返回深层链接 URL。我已经搜索了很多,但没有找到解决方案。我使用的是 firebase 7.11 版本的 Pod。

func application(_ application: UIApplication,continue userActivity: NSUserActivity,restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        if let incomingUrl = userActivity.webpageURL{
            print("Incoming URL is \(incomingUrl)")
            
            let linkHandled = DynamicLinks.dynamicLinks().handleUniversalLink(incomingUrl) { (dynamicLink,error) in
//                guard error == nil else{
//                    print("Found an error! \(error!.localizedDescription)")
//                    return
//                }
                print("error \(error)")
                print("dynamicLink \(dynamicLink)") // It returns nil when app open from whatsapp or any 3rd party app.
               
            }
            if linkHandled{
                return true
            }else{
                
                return false
            }
        }
        return false
}

在这两种情况下也收到了以下错误

Error Domain=com.firebase.dynamicLinks Code=403 "(null)" UserInfo={code=403,message=Requests to this API firebasedynamiclinks.googleapis.com method google.firebase.dynamiclinks.v1.DynamicLinksService.GetIosReopenAttribution are blocked.,status=PERMISSION_DENIED,details=( 
{ 
"@type" = "type.googleapis.com/google.rpc.ErrorInfo"; 
domain = "googleapis.com"; 
Metadata = { 
consumer = "projects/37866531840"; 
service = "firebasedynamiclinks.googleapis.com"; 
}; 
reason = "API_KEY_SERVICE_BLOCKED"; 
} 
)}

解决方法

您是否使用 FirebaseDynamicLinksCustomDomains 参数在 info.plist 文件中添加了自定义域,如下图所示。

info.plist

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。