Facebook iOS App中的Branch.io链接

时间:2017-08-15 09:07:54

标签: ios facebook branch.io

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

我认为问题出在我们的Branch.io配置中,但我无法找到它。

注意:

  1. 我已经实施了Universal Links并且工作正常(除了Facebook的这个问题)。
  2. 当我按下"在Safari中打开"在Facebook应用程序中,它也可以正常工作。
  3. Deepview始终显示"获取应用程序"当应用程序已安装时,而不是"打开应用程序"
  4. 这是我创建链接的方式:

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

    这是我们的链接设置:

1 个答案:

答案 0 :(得分:3)

来自spec的Amruta:

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

为克服此限制,Branch为Deepview按钮后面的链接使用不同的域,以便所访问的域与当前网页不同。 Deepview按钮后面的链接使用格式为'-alternate.app.link'的域。

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