我正在创建像trucaller一样的app。一切都完成了,只剩下一个问题。问题是如何在应用程序中从服务器添加新联系人号码后重新加载应用程序扩展。首先,我在数组中输入一些静态数字,然后将其存储在userdefault中。我通过app-groups功能得到了这个。我希望当用户在我的应用程序中同步他们的联系人时,我想要重新加载联系人列表。
这是我的代码
manager.reloadExtension(withIdentifier: extensionIdentifer, completionHandler: { error in
print("error \(error?.localizedDescription)")
if let _ = error{
print("A error \(error?.localizedDescription as String!)");
}
})
这给我一个错误如下
“sqlite3_step for query \'INSERT INTO PhoneNumberBlockingEntry (extension_id,phone_number_id)VALUES(?,(SELECT id FROM PhoneNumber WHERE(number =?)))\'返回19(2067)errorMessage \'UNIQUE 约束失败:PhoneNumberBlockingEntry.extension_id, PhoneNumberBlockingEntry.phone_number_id \'“
答案 0 :(得分:1)
Jaydeep:调用您的新联系人网络服务或同步应用程序中的联系人,然后重新加载扩展名为 -
CXCallDirectoryManager.sharedInstance.getEnabledStatusForExtension(withIdentifier: "com.compname.sampleapp", completionHandler: { (enabledStatus,error) ->
Void in if let error = error {
print(error.localizedDescription)
}
CXCallDirectoryManager.sharedInstance.reloadExtension(withIdentifier:"com.compname.sampleapp", completionHandler: {
(error) ->
Void in if let error = error {
print(error.localizedDescription)
}
DispatchQueue.main.async {
self.hud?.hide(animated: true)
}
})
print("No error")
})
让我知道仍有问题。我做到了这一点并且工作正常。