Skip to main content

Backup Contacts

TBD: (!) Нет описания как работать с пермишнами нужно вынести в отдельную страницу

Manual Backup#

TBD: Описание что такое Manual backup

To backup user contacts, you need to call:

CloudikeContacts.shared.backupProcessor.backupNow { (success, error) in }

Monitoring#

TBD: Описание прогресса бэкапа, стрктура нотификаций и значение

To monitor backup status, you need to call:

CloudikeContacts.shared.backupProcessor.registerObserver(observer)

To cancel monitoring, you need to call:

CloudikeContacts.shared.backupProcessor.unregisterObserver(observer)

The following example shows how to do that:

class BackupHomeViewController: UIViewController {    override func viewWillAppear(_ animated: Bool) {        super.viewWillAppear(animated)        CloudikeContacts.shared.backupProcessor.registerObserver(self)    }
    override func viewWillDisappear(_ animated: Bool) {        super.viewWillDisappear(animated)        CloudikeContacts.shared.backupProcessor.unregisterObserver(self)    }}
extension BackupHomeViewController: BackupObserver {    func backupStateChanged(state: BackupProcessor.BackupState) {        // your implementation    }    }

Planned Backup#

TBD: Описание что такое planned backup

For control the planned backup, you can change the BackupFrequency value:

CloudikeContacts.shared.plannedBackupProcessor.backupFrequency = .daily

TBD: Доступные опции backupFrequency или ссылка на References

TBD: Описание для чего нужно вызывать checkNeedBackup()

To check if a backup is required, you have to call the method after the application start (and after initialisation library):

CloudikeContacts.shared.plannedBackupProcessor.checkNeedBackup()

TBD: Разобраться что это за нотификация

To start the planned backup, you need to call: didReceiveNotificationResponse() after notification is clicked. The following example shows how to do that:

extension NotificationService : UNUserNotificationCenterDelegate {
    func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        if CloudikeContacts.shared.plannedBackupProcessor.willPresentNotification(notification, completionHandler: completionHandler) {            return        }
        completionHandler([.sound, .alert])    }
    func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
        if CloudikeContacts.shared.plannedBackupProcessor.didReceiveNotificationResponse(response, completionHandler: completionHandler) {            return        }
        completionHandler()    }}