Branch.io Facebook 中的链接 iOS 应用程序

Branch.io links in Facebook iOS App

当我尝试在 Facebook 应用程序中打开 link 时,

Branch.io 找不到我的应用程序。它总是重定向到 App Store,即使我们的应用程序已经安装在设备上。我已经阅读 https://blog.branch.io/deep-linking-from-facebook-in-2017/ 并实施了 Deepviews,但即使从那里我也无法进入该应用程序。它仍然会打开 App Store。

我假设问题出在我们的 Branch.io 配置中,但我找不到它。

备注:

  1. 我已经实现了通用链接并且它们工作正常(除了 Facebook 的这个问题)。
  2. 当我在 Facebook 应用程序中按 "Open in Safari" 时,它也能正常工作。
  3. Deepview 在已安装应用程序时始终显示 "Get the app" 而不是 "Open app"。

这就是我创建 link:

的方式
- (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"]];

这是我们的 link 设置:

Amruta 来自 Branch.io 此处:

由于 Apple 方面的限制,当用户在网络浏览器(即 Safari)上点击通用 link 时,如果 link 与当前网页具有相同的域它不使用 Universal linking 打开应用程序,而是在 Safari 中打开 link。您可以阅读有关此行为的更多信息 here.

为了克服这个限制,Branch为Deepview按钮后面的link使用了不同的域,这样访问的域就不同于当前网页。 Deepview 按钮后面的 link 使用格式为 '-alternate.app.link' 的域。

请确保您已在授权文件中为您的应用程序添加 -alternate.app.link 域。您可以查看提供有关如何添加域的信息的文档 here.