我正在打电话的产品。当用户点击本机通话记录时,我需要处理操作。
关于这个,我有两件事很挣扎。
为什么需要这个:区分用户信息
为什么我认为这是可能的:
INStartCallIntentResponse
对象具有userInfo
属性
例如
// IntentHandler.swift
func handle(intent: INStartCallIntent, completion: @escaping (INStartCallIntentResponse) -> Void) {
let response: INStartCallIntentResponse
defer { completion(response) }
guard intent.isValid else {
response = INStartCallIntentResponse(code: .failure, userActivity: nil)
return
}
let userActivity = NSUserActivity(activityType: String(describing: INStartCallIntent.self))
userActivity.userInfo = ["anyKey": "anyValue"] // inject userInfo
response = INStartCallIntentResponse(code: .continueInApp, userActivity: userActivity)
}
并且当用户点击本机通话记录时触发
continueUserActivity
方法:
// AppDelegate.swift
func application(
_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
) -> Bool {
let userInfo = userActivity.userInfo // [:]
...
期望:[“anyKey”:“anyValue”]
发生 : [:]
有没有合适的方法来实现注入用户信息的方法?或者有可能吗?
点击按钮也会在
continueActivity
方法下面触发:
func application(
_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
) -> Bool {
但是没有属性来区分每个按钮。有什么方法或者方法可以区分吗?
任何想法都会有很大帮助:-)