【问题标题】:Generate referral short links using Branch SDK android使用 Branch SDK android 生成推荐短链接
【发布时间】:2017-10-27 06:15:09
【问题描述】:

我想使用分支 SDK 在我的应用中实现推荐系统。我想为每个用户生成一个可以由其他用户共享的带有我的静态自定义端点 (https://app.link/ABC123) 的短链接。我可以通过在LinkProperties 上设置别名来做到这一点。但是将别名与BUO.showShareSheet 一起使用会出错。

我可以在BUO.showShareSheet 中使用别名吗?

每个 URL 的规范标识符是否应该唯一?

是否可以使用LinkProperties设置多个频道?

如果 BUOLinkProperties 的所有参数都相同,是否每次都生成相同的 URL?

【问题讨论】:

    标签: android deep-linking branch.io


    【解决方案1】:

    1.我可以在 BUO.showShareSheet 中使用别名吗?

    您绝对可以在 showShareSheet 方法中使用别名。这是我用来生成和共享别名链接的代码

    final BranchUniversalObject branchUniversalObject = new BranchUniversalObject()
                            .setCanonicalIdentifier("/1234")
                            .setTitle("Test for alias")
                            .setContentDescription("Your friend has invited you to check out my app!")                      .setContentImageUrl("https://upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Branch_Metrics_logo_color.png/1200px-Branch_Metrics_logo_color.png")
                            .addContentMetadata("var1", "abc")
                            .addContentMetadata("var2", "def");
    
                    LinkProperties linkProperties = new LinkProperties()
                            .setChannel("Facebook")
                            .setFeature("Sharing")
                            .setAlias("aliastest");
    
                    ShareSheetStyle ss = new ShareSheetStyle(MainActivity.this, "Check this out!", "This stuff is awesome: ")
                    .setCopyUrlStyle(ContextCompat.getDrawable(this, android.R.drawable.ic_menu_send), "Copy", "Added to clipboard")
                    .setMoreOptionStyle(ContextCompat.getDrawable(this, android.R.drawable.ic_menu_search), "Show more")
                    .addPreferredSharingOption(SharingHelper.SHARE_WITH.FACEBOOK)
                    .addPreferredSharingOption(SharingHelper.SHARE_WITH.EMAIL)
                    .addPreferredSharingOption(SharingHelper.SHARE_WITH.MESSAGE)
                    .addPreferredSharingOption(SharingHelper.SHARE_WITH.HANGOUT)
                    .setAsFullWidthStyle(true)
                    .setSharingTitle("Share With");
    
            branchUniversalObject.showShareSheet(this, linkProperties,  ss,  new Branch.BranchLinkShareListener() {
                @Override
                public void onShareLinkDialogLaunched() {
                }
                @Override
                public void onShareLinkDialogDismissed() {
                }
                @Override
                public void onLinkShareResponse(String sharedLink, String sharedChannel, BranchError error) {
                }
                @Override
                public void onChannelSelected(String channelName) {
                }
            });
    

    但请注意,如果您尝试生成具有相同别名和不同链接参数的链接,您将收到别名冲突错误,而 showShareSheet 方法会反过来给您一个错误。

    2。每个 URL 的规范标识符是否应该唯一?

    canonicalIdentifiercanonicalUrl 参数极大地改进了 Branch 捕获的内容分析数据。 Branch 建议它应该是该内容独有的。反过来,它可以帮助 Branch 对同一事物的许多实例进行重复数据删除。合适的选择:带有路径的网站,或带有实体标识符的数据库。

    3.是否可以使用 LinkProperties 设置多个频道?

    您不能为单个链接设置多个频道。频道标签用于表示您的链接到达用户的路线。因此,只能有一个频道。

    4.如果 BUO 和 LinkProperties 的所有参数都相同,是否每次都会生成相同的 URL?

    如果所有 BranchUniversalObject 属性和链接属性完全相同,则 generateShortUrlshowShareSheet 将返回相同的链接。

    【讨论】:

    • 我已经尝试过了,使用带有 sharesheest 的别名只创建一次短 URL。然后它给出一个错误“创建 URL 时出现问题。无法使用该别名创建 URL。如果要重用别名,请确保为所有参数提交相同的属性并且用户是同一所有者。”从对话框中选择其他选项。但是,每次都会为第一个选择的选项创建相同的内容。
    • @Amrutha Deshmukh
    • 通过共享表创建链接时,Branch SDK 添加了一个附加链接属性channel,其中包含用户选择的频道名称,例如如果用户从 shareSheet 中选择 Slack,则 channel=Slack。即使您为链接定义了通道属性,Branch 的 SDK 也会覆盖此值。目前,无法使用 shareSheet 创建别名链接以将链接共享到不同平台。虽然,完全披露,我为 Branch 工作,并已将问题告知工程团队。他们正在研究此功能并将相应地更新 SDK。
    猜你喜欢
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多