Facebook iOS 应用程序中的 Branch.io 链接
Posted
技术标签:
【中文标题】Facebook iOS 应用程序中的 Branch.io 链接【英文标题】:Branch.io links in Facebook iOS App 【发布时间】:2017-08-15 09:07:54 【问题描述】:当我尝试在 Facebook 应用中打开链接时,Branch.io 找不到我的应用。它总是重定向到 App Store,即使我们的应用程序已经安装在设备上。我已经阅读了https://blog.branch.io/deep-linking-from-facebook-in-2017/ 并实现了 Deepviews,但即使从那里我也无法进入该应用程序。它仍然会打开 App Store。
我认为问题出在我们的 Branch.io 配置中,但我找不到。
注意事项:
-
我已经实现了通用链接,并且它们工作正常(Facebook 的这个问题除外)。
当我在 Facebook 应用程序中按“在 Safari 中打开”时,它也可以正常工作。
当已安装应用程序时,Deepview 始终显示“获取应用程序”而不是“打开应用程序”。
这就是我创建链接的方式:
- (BranchUniversalObject *)generateBranchObjectFor:(MBMediaObject *)object
NSArray<NSString *> *pathComponents = [object.shareLink pathComponents];
NSString *uid = [[pathComponents subarrayWithRange:NSMakeRange(pathComponents.count-2, 2)] componentsJoinedByString:@"/"];
BranchUniversalObject *branchObject = [[BranchUniversalObject alloc] initWithCanonicalIdentifier:uid];
branchObject.title = object.name;
branchObject.imageUrl = object.imageURL.absoluteString;
if ([object isKindOfClass:MBSong.class])
branchObject.contentDescription = ((MBSong *)object).artistName;
else if ([object isKindOfClass:MBAlbum.class])
branchObject.contentDescription = ((MBAlbum *)object).artist.name;
return branchObject;
- (BranchLinkProperties *)generateBranchLinkPropertiesForObject:(MBMediaObject *)object channel:(NSString *)channel
BranchLinkProperties *properties = [BranchLinkProperties new];
properties.feature = @"sharing";
properties.channel = channel;
[properties addControlParam:@"$deeplink_path" withValue:[[object.shareLink stringByReplacingOccurrencesOfString:@"http://" withString:@""] stringByReplacingOccurrencesOfString:@"https://" withString:@""]];
return properties;
NSString *shortURLString = [[self generateBranchObjectFor:object] getShortUrlWithLinkProperties:[self generateBranchLinkPropertiesForObject:object channel:@"twitter"]];
这是我们的链接设置:
【问题讨论】:
我也有同样的问题。深度链接适用于 Safari,但不适用于 Facebook。我关注了与您相同的博客文章,但无法弄清楚为什么它不起作用。我尝试编辑 deepview html 以将属性“al:web:should_fallback”添加为 false,但它仍然无法正常工作。我现在很难过。 Branch 的文档真的很混乱。 【参考方案1】:来自Branch.io这里的Amruta:
由于Apple方面的限制,当用户在网络浏览器(即Safari)上点击通用链接时,如果该链接与当前网页具有相同的域,则它不会使用通用链接来打开应用程序而是在 Safari 中打开链接。您可以阅读有关此行为的更多信息here。
为克服此限制,Branch 为 Deepview 按钮后面的链接使用不同的域,以便访问的域与当前网页不同。 Deepview 按钮后面的链接使用格式为“-alternate.app.link”的域。
请确保您已在权利文件中为您的应用添加了 -alternate.app.link 域。您可以查看提供有关如何添加域here 的信息的文档。
【讨论】:
非常感谢阿姆鲁塔!这样做确实会打开应用程序而不是 App Store。如果将其添加到文档中以使人们更容易发现它,那就太好了。我现在遇到的另一个问题是,deepview 中的按钮总是说“获取应用程序”,即使现在它在安装时直接进入应用程序。是否缺少任何内容以使按钮改为显示“打开应用程序”? @RafaelAlencar 非常感谢您的反馈。我已经更新了我们网站上的文档,应该会在一两天内发布。 @RafaelAlencar 默认 Deepview CTA 配置为在未安装应用程序时显示“获取应用程序”,在安装应用程序时显示“打开应用程序”。但是,Deepview CTA 按钮取决于 Branch 是否第一次看到应用打开或安装。因此,如果用户从 App Store Branch 有机地安装该应用程序,将无法将 Deepview CTA 从“获取”更改为“打开”。要将 Deepview CTA 从“获取”更改为“打开”,用户需要单击 Deepview CTA 按钮并直接深层链接到您的应用。我们的后端系统更新可能需要大约 30 分钟。 我明白了。感谢Amruta的解释! @AmrutaDeshmukh 你能帮我检查一下我的问题***.com/q/45930696/1115791 吗?以上是关于Facebook iOS 应用程序中的 Branch.io 链接的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 fb:// 从网页链接到 iOS 原生 Facebook 应用程序中的 Facebook STATUS
Facebook iOS 应用程序中的 Branch.io 链接
登录并再次授权时如何在iOS SDK中的Facebook应用程序中获取Facebook帐户的更改?