Messenger没有出现在branch.io的Share Sheet(UIActivityViewController)中

时间:2017-02-10 09:44:39

标签: ios swift facebook-messenger messenger branch.io

我试图通过branch.io分享表分享一些内容:

let shareText = "Some Share Text"

let linkProperties = BranchLinkProperties()
linkProperties.feature = "Some"
linkProperties.addControlParam("$desktop_url", withValue: desktopURLString)
linkProperties.addControlParam("$android_url", withValue: androidURLString)

let object = BranchUniversalObject(canonicalIdentifier: "some.cannonical.identifier")
object.title = "Some Title"
object.imageUrl = someImageURL
object.contentDescription = "Some Content Description"
object.addMetadataKey("some_id", value: identifier)

object.showShareSheet(with: linkProperties, 
              andShareText: shareText,
                      from: self, 
                completion: completion)

一切都很好,除了Facebook Messenger应用程序在共享表中没有显示为选项。无论是在建议的选项中还是在“更多”下。需要做些什么呢?

我找到了以下默认UIActivityViewController的问题/答案。这对branch.io有什么用呢? Facebook Messenger not showing up with UIActivityViewController

2 个答案:

答案 0 :(得分:2)

当您通过iOS上的共享表共享时 - 无论您是使用Branch共享表还是UIActivityViewController - 共享选项的选择不是您自己定义的,它由用户定义。

可以通过打开共享工作表然后滚动显示的应用列表直到看到“...”(更多)选项来访问用于设置列表中显示哪些应用的界面。点击此按钮,您将看到可以在手机上共享的应用列表:

enter image description here

每个应用都有一个滑块 - 如果为特定应用启用了滑块,该应用将显示在列表中。

enter image description here

在开发者的应用程序中,您无法在用户的手机上启用Facebook Messenger进行共享。

您提到点击“更多”按钮后,Messenger应用程序甚至无法使用。这让我很奇怪;如果安装了我检查的每个设备都有Facebook Messenger作为选项。也许尝试删除并重新安装Facebook Messenger。

答案 1 :(得分:0)

我再次潜入这个问题,我终于找到了麻烦制造者。如果我将分支链接属性的feature设置为包含空格的字符串值,则Messenger会在共享表中消失。例子:

    let properties = BranchLinkProperties()
    properties.feature = "Share News"   //does not work, messenger does not appear in the share sheet
    //properties.feature = "Share_News" //works, messenger appears in share sheet
    object.showShareSheet(with: properties, andShareText: "Some Share Text", from: viewController, anchor: UIBarButtonItem()) { (activityType, completed) in
        if (completed) {
            print(String(format: "Branch TestBed: Completed sharing to %@", activityType!))
        } else {
            print("Branch TestBed: Link Sharing Cancelled\n")
        }
    }

feature用作Branch中URL的参数,然后将其提供给共享扩展。虽然我认为这是分支中的编码问题,但似乎Messenger共享扩展程序不像其他应用程序那样处理URL。破坏了网址'与其他共享扩展程序一起使用。希望这有助于其他人!我现在将我的功能名称改为没有空格的东西。