我正试图通过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
发布于 2017-03-10 15:18:55
我再次深入讨论这个问题,终于找到了麻烦制造者。如果我将分支链接属性的feature设置为包含a空格的字符串值,则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")
}
}在分支的URL中使用feature作为参数,然后提供给共享扩展。虽然我认为这是分支中的编码问题,但似乎Messenger共享扩展处理URL的方式与其他应用程序不同。“坏掉的url”可以与其他共享扩展一起工作。希望这能帮到别人!现在,我将把我的功能的名称改为没有空格的东西。
发布于 2017-02-10 22:16:07
当您通过iOS上的共享表(无论您使用分支共享表还是UIActivityViewController )共享时,共享选项的选择不是您要定义的,而是由用户定义的。
设置哪些应用程序将出现在列表中的接口可以通过打开共享表,然后滚动显示的应用程序列表来访问,直到您看到“.”(更多)选项。点击此按钮,您将收到可在电话上共享的应用程序列表:

每个应用程序都有一个滑块--如果为特定的应用程序启用了滑块,该应用程序将出现在列表中。

让能够在用户手机上共享不是你作为开发人员可以在应用程序中做的事情。
您提到,当您点击更多的按钮时,Messenger应用程序甚至是不可用的。这让我觉得很奇怪;我检查过的每一台设备都有Facebook Messenger作为安装的选项。也许试着删除和重新安装Facebook。
https://stackoverflow.com/questions/42156151
复制相似问题