在本机 iOS 通话记录中注入 userInfo

问题描述 投票:0回答:0

我正在打电话的产品。当用户点击本机通话记录时,我需要处理操作。

关于这个,我有两件事很挣扎。

1。有没有办法在每个本机通话记录中注入 userInfo?

  • 为什么需要这个:区分用户信息

  • 为什么我认为这是可能的:

    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”]

    发生 : [:]

    有没有合适的方法来实现注入用户信息的方法?或者有可能吗?

2。有没有办法区分下面的音频/视频按钮?

点击按钮也会在

continueActivity
方法下面触发:

func application(
   _ application: UIApplication,
   continue userActivity: NSUserActivity, 
   restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
) -> Bool {

但是没有属性来区分每个按钮。有什么方法或者方法可以区分吗?

任何想法都会有很大帮助:-)

swift callkit sirikit
© www.soinside.com 2019 - 2024. All rights reserved.