我试图通过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
答案 0 :(得分:2)
当您通过iOS上的共享表共享时 - 无论您是使用Branch共享表还是UIActivityViewController - 共享选项的选择不是您自己定义的,它由用户定义。
可以通过打开共享工作表然后滚动显示的应用列表直到看到“...”(更多)选项来访问用于设置列表中显示哪些应用的界面。点击此按钮,您将看到可以在手机上共享的应用列表:
每个应用都有一个滑块 - 如果为特定应用启用了滑块,该应用将显示在列表中。
在开发者的应用程序中,您无法在用户的手机上启用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。破坏了网址'与其他共享扩展程序一起使用。希望这有助于其他人!我现在将我的功能名称改为没有空格的东西。