gpt4 book ai didi

ios - CallKit 不会阻止数组中的数字

转载 作者:可可西里 更新时间:2023-11-01 01:16:59 30 4
gpt4 key购买 nike

我在单例中从 CNContact 创建数字数组。但是当我重新加载我的 CallKit 扩展时,CallKit 不会阻止我之前阻止的号码。号码长度为 11 个字符。数组不为空。重新加载 CallKit Extension 后没有错误。

static let shared = BlockNumbersManager()
private init() { }
open var blockNumbers: [CXCallDirectoryPhoneNumber] = []
open func getIntegerBlockNumbers() -> [CXCallDirectoryPhoneNumber] {
return blockNumbers
}



private func addBlockingPhoneNumbers(to context: CXCallDirectoryExtensionContext) throws {
let phoneNumbers: [CXCallDirectoryPhoneNumber] = BlockNumbersManager.shared.getIntegerBlockNumbers() // TODO: add numbers for block dynamically.
for phoneNumber in phoneNumbers {
context.addBlockingEntry(withNextSequentialPhoneNumber: phoneNumber)
}
}

我错过了什么?

最佳答案

虽然@Stuart 的回答提出了很好的观点,但在我花了 1 个多小时弄清楚为什么我的调用目录扩展不起作用之后,我想从我这边添加一些提示...

  1. 电话号码格式:检查您是否添加了国家代码。就我而言,我测试了澳大利亚手机号码,例如 0412345678,因此它应该是 61412345678 或 +61412345678。是的,两者都对我有用。

  2. 注意 iOS 缓存!每次重新启动或运行您的应用程序时,您在 Call Directory 扩展程序中编写的内容不会被执行/调用。即你认为你已经在阻塞数组中附加了一些新的电话号码,但 iOS 实际上可能不会像你预期的那样加载它。诀窍是在“设置”->“电话”->“调用阻止和识别”中切换您的应用程序选项。

  3. 当需要重新加载以使 iOS 缓存失效时,您可能希望在主应用中调用 CXCallDirectoryManager.reloadExtension

关于ios - CallKit 不会阻止数组中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45827342/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com