我正在创建像trucaller的应用程序。一切都已完成,仅剩一个问题。问题是如何在应用程序中从服务器添加新的联系电话后如何重新加载应用程序扩展名。首先,我在数组中输入一些静态数字,然后将其存储在userdefault中。我是通过应用程序组功能获得的。我希望当用户在我的应用程序中同步他们的联系人时,我想重新加载联系人列表。
这是我的代码
manager.reloadExtension(withIdentifier: extensionIdentifer, completionHandler: { error in
print("error \(error?.localizedDescription)")
if let _ = error{
print("A error \(error?.localizedDescription as String!)");
}
})
这是给我这样的错误
“sqlite3_step用于查询\'INSERT INTO PhoneNumberBlockingEntry
(extension_id,phone_number_id)VALUES(?,(SELECT id from PhoneNumber
WHERE(number =?)))'返回19(2067)错误消息\'UNIQUE
约束失败:PhoneNumberBlockingEntry.extension_id,
PhoneNumberBlockingEntry.phone_number_id \'“
最佳答案
Jaydeep:调用您的新联系人Web服务或在应用程序中同步联系人,然后将扩展名重新加载为-
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")
})
让我知道问题仍然存在。我已经做到了,并且工作正常。