Firebase 动态链接预览内容
Posted
技术标签:
【中文标题】Firebase 动态链接预览内容【英文标题】:Firebase Dynamic Link Preview Content 【发布时间】:2019-01-07 18:59:19 【问题描述】:我有一个通过我的Firebase
控制台链接/设置的动态链接。
此链接通过以下生成的 Facebook 链接共享按预期工作:
NSURL *link = [[NSURL alloc] initWithString:@"https://myapp.page.link/page?parameter=123"];
NSString *dynamicLinksDomain = @"myapp.page.link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
initWithLink:link
domain:dynamicLinksDomain];
linkBuilder.iosParameters = [[FIRDynamicLinkIOSParameters alloc]
initWithBundleID:@"com.example.MyApp"];
content.contentURL = linkBuilder.url;
[FBSDKShareDialog showFromViewController:controller withContent:content delegate:self];
帖子在小格中按预期显示信息:
问题:
❌ 当用户点击 WITH 传递的parameter=123
链接时,它会将它们传送到“正确”但非常空白的页面(如下所示的LEFT .)
✅ 当用户点击链接WITHOUT传递的parameter=123
时,它会将它们传递到预期的页面(如下图RIGHT所示)。
正如我上面所说,链接工作正常。这意味着,当点击“打开”时,它会将用户带到应用程序(如果已安装)或 App Store。即使 with 传递了参数,我确实通过 URL 在应用程序中正确接收它,但我的问题是:
如何通过动态链接传递参数,同时保持预览页面和我的应用程序内容?
非常感谢任何帮助 - 提前致谢!
注意:
我已尝试通过 Firebase 控制台将组件添加到我的动态链接深层链接,例如 ...page.link/parameterID
,以查看它是否预期在那里寻找值。没运气。我确定这与设置有关,但到目前为止我一直无法使用传递的参数保留内容。
【问题讨论】:
【参考方案1】:我相信您可能会将动态链接中的深层链接与实际 Firebase 动态链接(.page.link URL)的子域混淆。因此,与其使用“https://myapp.page.link/page?parameter=123”作为您的深层链接参数,不如使用您自己的公司域名,例如https://example.com/page?parameter=123。
由于您通过 Firebase 动态链接子域传递 URL,这就是您的应用正在接收的深层链接,这可能不是您想要的。
查看此处的文档了解更多信息:
https://firebase.google.com/docs/dynamic-links/ios/create
您会注意到深层链接 URL 是 https://example.com,而子域 example.page.link 被用作动态链接域。
希望有帮助!
【讨论】:
我可以在那里传递任何参数值吗?它需要依赖于用户信息,而不仅仅是一个常数,即 123 该参数也必须是动态的 - 该值将根据用户共享的内容在应用内设置。每次都会不同,所以不能在 Firebase 的控制台中静态设置 @WillVonUllrich 是的,这是正确的。您可能希望通过构建器 API 以编程方式生成动态链接,并根据需要在您的应用将处理的深层链接上设置参数。 firebase.google.com/docs/dynamic-links/android/create 另请注意,您需要确保对传入的任何参数进行 URL 编码。【参考方案2】:这里,我们讨论的是预览页面上显示的元标记信息。
这些是从您为其创建链接的 URL 自动获取的,或者您可以在创建链接时进行设置。在构建动态链接时添加这些参数。
标题(st) 说明 (SD) 图片 (si)更多信息他们的工作方式是here。
问题似乎是,您的页面https://example.com/page?parameter=123 没有正确设置元标记。
【讨论】:
以上是关于Firebase 动态链接预览内容的主要内容,如果未能解决你的问题,请参考以下文章