Tom*_*ton 40 ios swift sirikit ios-contacts
我正在尝试使用与iOS Contacts应用程序集成的消息传递应用程序,以便用户可以直接从"联系人"通过应用程序发起消息.这在WWDC 2016会议240中有所涉及,但显然省略了一些细节.
在WWDC示例之后,我有:
将活动类型添加到应用程序Info.plist:
<key>NSUserActivityTypes</key>
<array>
<string>INSendMessageIntent</string>
</array>
Run Code Online (Sandbox Code Playgroud)实现application(_:continue:restorationHandler:)我的应用程序委托.
创建并捐赠了一种互动
let activity = NSUserActivity(activityType: "com.example.message")
activity.title = "Send CB Test Message"
activity.expirationDate = Date.distantFuture
let recipient = INPerson( /* recipient with an email address in my Contacts database */ )
let sender = INPerson( /* me */ )
let intent = INSendMessageIntent(recipients: [recipient], content: nil, groupName: nil, serviceName: "CB Test Chat", sender: sender)
let response = INSendMessageIntentResponse(code: .success, userActivity: activity)
let interaction = INInteraction(intent: intent, response: response)
interaction.direction = .outgoing
interaction.donate { (error) in
print("Donated")
if let error = error {
print("Donate error: \(error)")
}
}
Run Code Online (Sandbox Code Playgroud)这个排序的作品.该应用程序在"联系人"中的一个收件人卡上显示为一个选项.在联系人中点击它会启动我的应用程序NSUserActivity.这很好,但还不够.
WWDC会议以WhatsApp为例.WhatsApp显示为我所有联系人的选项,即使是那些没有WhatsApp帐户的联系人.我想也许WhatsApp已经为每个人创建并捐赠了互动.但是,如果我在WhatsApp未运行时创建新联系人,则会立即选择该联系人.我试验了一下,将接收者参数设置为nil或空数组,但这没有任何效果.
那我在这里错过了什么?我很亲密,也许吧?但似乎捐赠互动可能不是我真正需要的.
更新,回应@Mark:澄清了使用activity.我已尝试使用response(使用activity)和使用零值,response但都没有工作.
我在 WWDC 2019 上询问过这个问题,并被告知这种大规模捐赠仅适用于 VOIP 应用程序,不适用于消息应用程序。这个问题中的代码理论上适用于 VOIP——可能也可能不完全如所呈现的那样。我没有尝试过,因为我没有开发合适的应用程序。
| 归档时间: |
|
| 查看次数: |
1759 次 |
| 最近记录: |