Для разработки мобильного приложения в запросах к серверу мобильной платформы используются методы iOS-фреймворка основного класса HHFWController.
Большинство методов выполняются асинхронно в фоновом потоке. Для отображения результата выполнения запроса передайте в метод замыкание «handler» типа «HHFWCompletionHandler?», которое автоматически вызывается на основном потоке после выполнения метода.
Примечание. Перед выполнением методов выполните аутентификацию на сервере мобильной платформы по логину и паролю или со сменой пароля. Для работы с локальной базой данных и ресурсами откройте соединение и загрузите схемы ресурсов, иначе методы будут вызывать замыкание «handler» c параметром «nil».
Аутентификация пользователя по логину и паролю (auth)
Метод auth выполняет аутентификацию пользователя по логину и паролю.
Примечание. Перед выполнением метода убедитесь, что в проекте добавлены учётные данные для источника данных.
HHFWController.sharedInstance().auth(_ login: String, password: String, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
login | String | Логин пользователя. |
password | String | Пароль пользователя. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let userName: String = "user"
let password: String = "password"
HHFWController.sharedInstance().auth(userName, password: password){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит статус аутентификации, описание ошибок и другую информацию
// Также в этом блоке можно открыть соединение с базой данных
}
После выполнения метода будет получен токен пользователя. Токен используется в каждом запросе к серверу мобильной платформы.
Аутентификация пользователя со сменой пароля (auth)
Метод auth выполняет аутентификацию пользователя со сменой пароля. Для выполнения метода требуется текущие логин и пароль пользователя, новый пароль и подтверждение нового пароля.
Примечание. Перед выполнением метода убедитесь, что в проекте добавлены учётные данные для источника данных.
HHFWController.sharedInstance().auth(_ login: String, password: String, newPassword: String, confirmPassword confirm: String, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
login | String | Логин пользователя. |
password | String | Пароль пользователя. |
newPassword | String | Новый пароль пользователя. |
confirmPassword | String | Подтверждение нового пароля пользователя. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let userName: String = "user"
let password: String = "password"
let newPassword: String = "newPassword"
let confirmPassword: String = "newPassword"
HHFWController.sharedInstance().auth(userName, password: password, newPassword: newPassword, confirmPassword: confirmPassword){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит статус аутентификации, описание ошибок и другую информацию
// Также в этом блоке можно открыть соединение с базой данных
}
После выполнения метода будет получен новый токен пользователя. Токен используется в каждом запросе к серверу мобильной платформы.
Проверка использования LDAP по протоколу SSL (setSSLChecks)
Метод setSSLChecks определяет признак проверки использования LDAP по протоколу SSL при подключении к серверу мобильной платформы.
HHFWController.sharedInstance().setSSLChecks(_ enabled: Bool)
Входные параметры:
Параметр | Тип данных | Описание |
enabled | Bool | Признак проверки использования LDAP по протоколу SSL:
|
Пример:
let isCheckSSLOn: Bool = true
HHFWController.sharedInstance().setSSLChecks(isCheckSSLOn)
Отмена аутентификации (unAuth)
Метод unAuth отменяет выполненную аутентификацию пользователя.
HHFWController.sharedInstance().unAuth()
Использование методов приведено в примерах «Примеры аутентификации на сервере мобильной платформы».
Проверка доступности сервера мобильной платформы (connectionStatus)
Метод connectionStatus выполняет проверку доступности сервера мобильной платформы.
HHFWController.sharedInstance().connectionStatus(_ host: String, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
host | String | URL-адрес сервера мобильной платформы. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let host: String = "https://<IP-адрес или DNS-имя сервера>"
HHFWController.sharedInstance().connectionStatus(host){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит статус аутентификации, описание ошибок и другую информацию
// Также в этом блоке можно открыть соединение с базой данных
}
Использование метода приведено в примере «Пример проверки доступности сервера мобильной платформы».
Открытие или создание базы данных (openBase)
Метод openBase открывает соединение с базой данных по указанному пути.
При установленном соединении можно записывать данные в локальную базу данных. Если база данных по указанному пути не найдена, то создается новая база данных, с которой устанавливается соединение.
Примечание. Создайте базу данных в папке приложения Documents. Методы фреймворка обращаются к базе данных этой директории.
HHFWController.sharedInstance().openBase(_ pathBase: String, key: String) -> Bool
Входные параметры:
Параметр | Тип данных | Описание |
pathBase | String | Путь к файлу базы данных относительно корневого каталога файловой системы мобильного устройства. |
key | String | Ключ шифрования базы данных. |
Пример:
let paths: [URL] = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let fullDatabaseURL: URL = paths[0].appendingPathComponent("database.sqlite")
let databaseKey: String = "key" // если шифрование не нужно, то key = ""
let success = HHFWController.sharedInstance().openBase(fullDatabaseURL.path, key: databaseKey)
После выполнения метода будет открыто соединение с локальной базой данных и возвращено значение true, иначе false.
Смена ключа шифрования базы данных (rekeyBase)
Метод rekeyBase выполняет смену ключа шифрования локальной базы данных.
HHFWController.sharedInstance().rekeyBase(_ pathBase: String, newKey key: String) -> Bool
Входные параметры:
Параметр | Тип данных | Описание |
pathBase | String | Путь к файлу базы данных относительно корневого каталога файловой системы мобильного устройства. |
newKey | String | Новый ключ шифрования базы данных. |
Метод возвращает значение true при успешной смене ключа шифрования, иначе false.
Пример:
let databaseName: String = "database.sqlite"
let newKey: String = "newKey"
HHFWController.sharedInstance().rekeyBase("/Documents/\(databaseName)", newKey: newKey)
Примечание. Перед сменой ключа шифрования откройте базу данных с помощью метода openBase.
SQL-запрос к базе данных (query)
Метод query отправляет SQL-запрос к локальной базе данных.
HHFWController.sharedInstance().query(_ base: String?, query: String) -> String?
Входные параметры:
Параметр | Тип данных | Описание |
base | String? | Путь к файлу базы данных относительно корневого каталога файловой системы мобильного устройства. |
query | String | SQL-запрос. |
Формат названия таблицы в локальной базе данных: <resourceName>_<hash>_<tableName>, где:
resourceName. Название ресурса;
hash. Хэш-сумма, рассчитанная на основе request-параметров. Параметры указываются в запросе при записи данных в базу данных с помощью свойства data класса *CallParams;
tableName. Имя таблицы.
Метод возвращает результат выполнения запроса в виде JSON.
Пример:
let jsonResult: String? = HHFWController.sharedInstance().query("/Documents/\(databaseName)", query: "SELECT * FROM TableNameInDatabase WHERE `key` = 'value'")
Получение наименований таблиц (getTablesName)
Метод getTablesName возвращает наименования таблиц, если используется локальное кэширование во время записи в базу данных.
HHFWController.sharedInstance().getTablesName(_ databasePath: String, resourceName resource: String, requestParams params: String, tableName table: String?) -> String?
Входные параметры:
Параметр | Тип данных | Описание |
databasePath | String | Путь к файлу базы данных относительно корневой директории приложения. Например, путь к файлу базы данных database.sqlite, расположенному в папке Documents: «/Documents/database.sqlite». |
resourceName, resource | String | Название ресурса. |
requestParams, params | String | JSON-строка с параметрами, с которыми выполнялся запрос. |
tableName, table | String? | Имя таблицы на сервере. Используется для получения конкретной таблицы в многотабличном ресурсе. |
Если локальное кэширование не используется, то таблицы не будут найдены. Для формирования наименования таблицы вручную используйте название ресурса и имя таблицы в формате: <resourceName>_<tableName>, где:
resourceName. Название ресурса;
tableName. Имя таблицы.
Пример:
let databaseName: String = "database.sqlite"
let resourceName: String = "ResourceName"
let params: String = "{}"
let tableName: String = "TableName"
let jsonResult: String! = HHFWController.sharedInstance().getTablesName("/Documents/\(databaseName)", resourceName: resourceName, requestParams: "", tableName: tableName)
После выполнения метода будет получен список всех наименований таблиц.
Удаление таблиц из базы данных (dropCache)
Метод dropCache удаляет таблицы из базы данных.
HHFWController.sharedInstance().dropCache(_ databasePath: String, resourceName resource: String, requestParams params: String) -> String?
Входные параметры:
Параметр | Тип данных | Описание |
databasePath | String | Путь к файлу базы данных относительно корневой директории приложения. Например, путь к файлу базы данных database.sqlite, расположенному в папке Documents: «/Documents/database.sqlite». |
resourceName, resource | String | Название ресурса. |
requestParams, params | String | JSON-строка с параметрами, с которыми выполнялся запрос. |
Метод возвращает результат выполнения запроса в виде JSON.
Пример:
Для очистки кэша в локальной базе данных можно удалить таблицы, которые были созданы в результате запросов с указанием определенных параметров:
let databaseName: String = "database.sqlite"
let resourceName: String = "ResourceName"
let params: String = "{}"
let jsonResult: String! = HHFWController.sharedInstance().dropCache("/Documents/\(databaseName)", resourceName: resourceName, requestParams: params)
Для удаления всех файлов с разрешением *.sqlite из папки Documents в директории приложения используйте запрос без указания параметров:
HHFWController.sharedInstance().dropCache()
Закрытие базы данных (closeBase)
Метод closeBase закрывает соединение с базой данных.
HHFWController.sharedInstance().closeBase(_ pathBase: String) -> Bool
Входные параметры:
Параметр | Тип данных | Описание |
pathBase | String | Путь к файлу базы данных относительно корневого каталога файловой системы мобильного устройства. |
Метод возвращает значение true при успешном закрытии соединения с базой данных, иначе false.
Использование метода актуально при отмене аутентификации.
Использование методов приведено в примерах «Примеры работы с ресурсами».
Загрузка схемы ресурсов (resources)
Метод resources получает схемы доступных ресурсов и автоматически создает в базе данных соответствующие таблицы. Перед загрузкой схемы ресурсов открывается соединение с базой данных аналогично методу openBase.
HHFWController.sharedInstance().resources(_ database: String?, password: String?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
database | String? | Имя используемой базы данных.
Примечание. Если параметр принимает значение «nil», то при выполнении метода используется имя базы данных по умолчанию - «hhfw.sqlite». |
password | String? | Ключ шифрования базы данных. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let databaseName: String = "database.sqlite"
let databaseKey: String = "databaseKey"
HHFWController.sharedInstance().resources(databaseName, password: databaseKey){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе схемы, ответ сервера и саму схему ресурсов
}
После выполнения метода схема ресурсов будет автоматически записана в указанную базу данных. Поиск/создание указанной базы данных осуществляется в папке Documents в директории приложения.
Синхронная загрузка дельты в базу данных (deltaStream)
Метод deltaStream синхронно загружает дельту в базу данных.
Примечание. Перед выполнением метода загрузите схему ресурсов.
HHFWController.sharedInstance().deltaStream(_ resourсeName: String, withCache: Bool, deltaStreamCallParams: DeltaStreamCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
withCache | Bool | Признак, определяющий ведение кэширования таблиц в локальной базе данных. |
deltaStreamCallParams | DeltaStreamCallParams? | Экземпляр класса DeltaStreamCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
При инициализации экземпляра класса DeltaStreamCallParams с defaultDb используется имя «hhfw.sqlite» по умолчанию. Если искомое имя базы данных отличается, то после инициализации DeltaStreamCallParams необходимо указать полный путь до базы данных с помощью свойства dataBasePath.
Пример:
let resourceName: String = "ResourceName"
let isCached: Bool = true
let deltaStreamCallParams: DeltaStreamCallParams = DeltaStreamCallParams(defaultDb: ())
deltaStreamCallParams?.dataBasePath = fullDatabaseURL.path
HHFWController.sharedInstance().deltaStream(resourceName, withCache: isCached, deltaStreamCallParams: deltaStreamCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
После выполнения метода дельта данных будет автоматически синхронно записана в указанную базу данных согласно предварительно полученной схеме.
Асинхронная загрузка дельты в базу данных (deltaStreamAsync)
Метод deltaStreamAsync асинхронно загружает дельту в базу данных.
Примечание. Перед выполнением метода загрузите схему ресурсов.
HHFWController.sharedInstance().deltaStreamAsync(_ resourceName: String?, withCache: Bool, deltaStreamCallParams: DeltaStreamCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String? | Название ресурса. |
withCache | Bool | Признак, определяющий ведение кэширования таблиц в локальной базе данных. |
deltaStreamCallParams | DeltaStreamCallParams? | Экземпляр класса DeltaStreamCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
При инициализации экземпляра класса DeltaStreamCallParams с defaultDb используется имя «hhfw.sqlite» по умолчанию. Если искомое имя базы данных отличается, то после инициализации DeltaStreamCallParams необходимо указать полный путь до базы данных с помощью свойства dataBasePath.
Пример:
let deltaStreamCallParams: DeltaStreamCallParams = DeltaStreamCallParams(defaultDb: ())
deltaStreamCallParams?.dataBasePath = fullDatabaseURL.path
let resourceName: String = "ResourceName" // название ресурса
let isCached: Bool = true
HHFWController.sharedInstance().deltaStreamAsync(resourceName, withCache: isCached, deltaStreamCallParams: deltaStreamCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
После выполнения метода дельта данных будет автоматически синхронно записана в указанную базу данных согласно предварительно полученной схеме.
Синхронная загрузка табличных данных в базу данных (tableStream)
Метод tableStream синхронно загружает табличные данные в базу данных.
Примечание. Перед выполнением метода загрузите схему ресурсов.
HHFWController.sharedInstance().tableStream(_ resourсeName: String, withCache: Bool, transactionID: String?, tableCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
withCache | Bool | Признак, определяющий ведение кэширования таблиц в локальной базе данных. |
transactionID | String? | Идентификатор
транзакции.
Примечание. Если параметр принимает значение «nil», то транзакция будет недоступна для повторного получения её результата с помощью метода retryTableStream, так как она не будет сохранена на сервере. |
tableCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
При инициализации экземпляра класса RequestCallParams с defaultDb используется имя «hhfw.sqlite» по умолчанию. Если искомое имя базы данных отличается, то после инициализации RequestCallParams необходимо указать полный путь до базы данных с помощью свойства dataBasePath.
Пример:
let resourceName: String = "ResourceName"
let isCached: Bool = true
let requestCallParams: RequestCallParams = RequestCallParams(defaultDb: ())
requestCallParams?.dataBasePath = fullDatabaseURL.path
HHFWController.sharedInstance().tableStream(resourceName, withCache: isCached, transactionID: nil, tableCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
После выполнения метода табличные данные будут автоматически синхронно записаны в указанную базу данных согласно предварительно полученной схеме.
Также можно отфильтровать табличные данные. Для фильтрации данных укажите в запросе query-аргументы с помощью передачи словаря с аргументами в параметр «args» экземпляру класса *CallParams.
Для получения подробной информации о видах фильтрации обратитесь к разделу «Метод работы с табличными ресурсами».
Пример запроса для получения данных, отфильтрованных по значениям в столбцах «columnName»:
let requestCallParams: RequestCallParams = RequestCallParams(defaultDb: ())
requestCallParams?.dataBasePath = fullDatabaseURL.path
requestCallParams?.args = ["col_columnName1": value1, "col_columnName2": value2, ...]
Асинхронная загрузка табличных данных в базу данных (tableStreamAsync)
Метод tableStreamAsync асинхронно загружает табличные данные в базу данных.
Примечание. Перед выполнением метода загрузите схему ресурсов.
HHFWController.sharedInstance().tableStreamAsync(_ resourceName: String?, withCache: Bool, transactionID: String?, tableCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String? | Название ресурса. |
withCache | Bool | Признак, определяющий ведение кэширования таблиц в локальной базе данных. |
transactionID | String? | Идентификатор
транзакции.
Примечание. Если параметр принимает значение «nil», то транзакция будет недоступна для повторного получения её результата с помощью метода retryTableStreamAsync, так как она не будет сохранена на сервере. |
tableCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
При инициализации экземпляра класса RequestCallParams с defaultDb используется имя «hhfw.sqlite» по умолчанию. Если искомое имя базы данных отличается, то после инициализации RequestCallParams необходимо указать полный путь до базы данных с помощью свойства dataBasePath.
Пример:
let resourceName: String = "ResourceName" // название ресурса
let isCached: Bool = true
let requestCallParams: RequestCallParams = RequestCallParams(defaultDb: ())
requestCallParams?.dataBasePath = fullDatabaseURL.path
HHFWController.sharedInstance().tableStreamAsync(resourceName, withCache: isCached, transactionID: nil, tableCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
После выполнения метода табличные данные будут автоматически синхронно записаны в указанную базу данных согласно предварительно полученной схеме.
Синхронное получение табличных данных ресурса без загрузки в базу данных (table)
Метод table синхронно запрашивает табличные данные ресурса без загрузки в базу данных.
HHFWController.sharedInstance().table(_ resourсeName: String, transactionID: String?, tableCallParams: TableCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
transactionID | String? | Идентификатор
транзакции.
Примечание. Если параметр принимает значение «nil», то транзакция будет недоступна для повторного получения её результата с помощью метода retryTable, так как она не будет сохранена на сервере. |
tableCallParams | TableCallParams? | Экземпляр класса TableCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let tableCallParams: TableCallParams = TableCallParams(defaultProperty: ())
HHFWController.sharedInstance().table(resourceName, transactionID: nil, tableCallParams: tableCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Асинхронное получение табличных данных ресурса без загрузки в базу данных (tableAsync)
Метод tableAsync асинхронно запрашивает табличные данные ресурса без загрузки в базу данных.
HHFWController.sharedInstance().tableAsync(_ resourceName: String?, transactionID: String?, tableCallParams: TableCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String? | Название ресурса. |
transactionID | String? | Идентификатор
транзакции.
Примечание. Если параметр принимает значение «nil», то транзакция будет недоступна для повторного получения её результата с помощью метода retryTableAsync, так как она не будет сохранена на сервере. |
tableCallParams | TableCallParams? | Экземпляр класса TableCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let tableCallParams: TableCallParams = TableCallParams(defaultProperty: ())
HHFWController.sharedInstance().tableAsync(resourceName, transactionID: nil, tableCallParams: tableCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Синхронный запрос к ресурсу без загрузки в базу данных (request)
Метод request синхронно отправляет универсальный запрос к ресурсу без загрузки в базу данных.
HHFWController.sharedInstance().request(_ resourсeName: String, requestCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Использование метода актуально при работе с WEB-ресурсами, где сервер мобильной платформы выступает в роли прокси.
Пример:
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().request(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Асинхронный запрос к ресурсу без загрузки в базу данных (requestAsync)
Метод requestAsync асинхронно отправляет универсальный запрос к ресурсу без загрузки в базу данных.
HHFWController.sharedInstance().requestAsync(_ resourceName: String?, requestCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String? | Название ресурса. |
requestCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Использование метода актуально при работе с WEB-ресурсами, где сервер мобильной платформы выступает в роли прокси.
Пример:
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().requestAsync(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Установка пути к папке с файлами текущего состояния загрузки ресурса (setDownloadPath)
Метод setDownloadPath устанавливает путь к папке в директории мобильного приложения, где будут храниться файлы текущего состояния загрузки ресурсов.
HHFWController.sharedInstance().setDownloadPath(_ path: String)
Входной параметр:
Параметр | Тип данных | Описание |
path | String | Путь к папке базы данных относительно корневого каталога файловой системы мобильного устройства, где будут храниться файлы текущего состояния загрузки ресурсов. Если заданной папки не существует, то автоматически выполняется создание папки по заданному пути. Если папку невозможно создать, то хранение файлов текущего состояния загрузки ресурсов осуществляется в папке Documents. |
Пример:
let path = downloadFileURL.path
HHFWController.sharedInstance().setDownloadPath(path)
Возобновление загрузки ресурса (useDownload)
Метод useDownload определяет возобновление загрузки ресурса.
HHFWController.sharedInstance().useDownload(_ val: Bool)
Входной параметр:
Параметр | Тип данных | Описание |
val | Bool | Определение возобновления загрузки ресурса. Возможные значения:
|
Метод используется при неуспешной попытке загрузки ресурса для восстановления загрузки ресурса с сохранением состояния на момент прерывания. Если во время загрузки ресурса произошла ошибка или разрыв соединения с сервером мобильной платформы, то мобильное приложение будет выполнять повторные попытки запроса ресурса.
Для возобновления загрузки ресурса используйте свойства retryCount и retryIntervalSec вспомогательных классов RequestCallParams, TableCallParams,DeltaStreamCallParams при выполнении методов работы с ресурсами deltaStream, deltaStreamAsync, tableStream, tableStreamAsync, table, tableAsync, request,requestAsync.
Порядок использования возобновления загрузки ресурса:
Укажите путь к папке с файлами текущего состояния загрузки ресурсов с помощью метода setDownloadPath после инициализации iOS-фреймворка в директории мобильного приложения.
Включите возобновление загрузки ресурса. Для включения возобновления загрузки ресурса используйте метод useDownload со значением true.
Выполните необходимые методы работы с ресурсами.
Отключите возобновление загрузки ресурса. Для отключения возобновления загрузки ресурса используйте метод useDownload со значением false.
Пример:
let path = self.getURL(forFolder: "DownloadPath").path
HHFWController.sharedInstance().setDownloadPath(path)
HHFWController.sharedInstance().useDownload(true)
let requestCallParams: RequestCallParams = RequestCallParams(defaultDb: ())
requestCallParams?.dataBasePath = fullDatabaseURL.path
requestCallParams?.retryCount = 10
requestCallParams?.retryIntervalSec = 1
let resourceName: String = "ResourceName" // название ресурса
let isCached: Bool = true
HHFWController.sharedInstance().tableStream(resourceName, withCache: isCached, transactionID: nil, tableCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование методов приведено в примерах «Примеры работы с ресурсами».
Для работы с push-уведомлениями используйте мобильное устройство, подготовьте приложение к получению push-уведомлений и определите токен устройства.
Для отправки push-уведомлений с сервера мобильной платформы на мобильное устройство сформируйте pem-сертификат Apple Push Services на основе сертификатов, которые получены в Apple Developer Account:
Скачайте необходимый сертификат из профиля разработчика и добавьте его в Keychain Access.
Раскройте сертификат в Keychain Access.
Выделите сам сертификат и закрытый ключ, экспортируйте их в удобное место с расширением *.p12.
Перейдите в терминале в директорию с экспортированным файлом и преобразуйте его в файл с расширением *.pem.
cd Desktop // директория, в которой находится экспортированный файл, например, на рабочем столе
openssl pkcs12 -in pushcert.p12 -out pushcert.pem -nodes -clcerts
Добавьте сертификат в разделе «Apple Push Notification service» при настройке push-уведомлений.
Для получения подробной информации о запросах на отправку push-уведомлений обратитесь к разделу «Метод работы с push-уведомлениями».
Получение списка активных токенов (getTokens)
Метод getTokens возвращает список токенов, привязанных к пользователю на сервере.
HHFWController.sharedInstance().getTokens(_ handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
HHFWController.sharedInstance().getTokens() { (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Отправка токена на сервер (addToken)
Метод addToken отправляет токен на сервер.
HHFWController.sharedInstance().addToken(_ token: String, service: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
token | String | Токен устройства. |
service | String | Имя сервиса push-уведомлений. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let token: String = "DeviceToken" // получаем в ходе регистрации для remote-уведомлений
let service: String = "apns"
HHFWController.sharedInstance().addToken(token, service: service) { (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Удаление токенов с сервера (removeTokens)
Метод removeTokens удаляет переданные токены с сервера.
Удалять можно сразу несколько токенов, передавая в метод массив.
HHFWController.sharedInstance().removeTokens(_ tokens: NSMutableArray, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
tokens | NSMutableArray | Массив токенов устройств. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let tokens: [String] = [token1, token2, ...] // наименования тем сообщений
HHFWController.sharedInstance().removeTokens(tokens) { (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Получение списка тем сообщений (getTopics)
Метод getTopics возвращает список тем сообщений.
HHFWController.sharedInstance().getTopics(_ handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
HHFWController.sharedInstance().getTopics { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Установка пути к файлу сертификата удостоверяющего центра (setCAPemFilePath)
Метод setCAPemFilePath устанавливает путь к файлу сертификата удостоверяющего центра с расширением *.pem в локальной директории приложения.
HHFWController.sharedInstance().setCAPemFilePath(_ path: String)
Входные параметры:
Параметр | Тип данных | Описание |
path | String | Путь к pem-файлу сертификата. |
Пример:
let path: String = "PemFilePath"
HHFWController.sharedInstance().setCAPemFilePath(path)
Подписка на сообщения (subscribeTopics)
Метод subscribeTopics осуществляет подписку на сообщения определенной темы.
HHFWController.sharedInstance().subscribeTopics(_ topics: NSMutableArray, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
topics | NSMutableArray | Массив названий тем сообщений. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let topics: [String] = [topic1, topic2, ...] // наименования тем сообщений
HHFWController.sharedInstance().subscribeTopics(topics) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Отписка от сообщений (unsubscribeTopics)
Метод unsubscribeTopics осуществляет отписку от сообщений определенной темы.
HHFWController.sharedInstance().unsubscribeTopics(_ topics: NSMutableArray, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
topics | NSMutableArray | Массив названий тем сообщений. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let topics: [String] = [topic1, topic2, ...] // наименования тем сообщений
HHFWController.sharedInstance().unsubscribeTopics(topics) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование методов приведено в разделе «Пример работы с push-уведомлениями».
Перед выполнением методов настройте подключение к папке на файловом сервере и добавьте разрешение на загрузку данных в файле Info.plist в проекте мобильного приложения:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Получение информации о содержимом директории (getDirectory)
Метод getDirectory возвращает информацию о содержимом директории.
HHFWController.sharedInstance().getDirectory(_ directory: String, mountName: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
directory | String | Путь к директории на сервере. |
mountName | String | Название подключения к файловому серверу. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let directory: String = "DirectoryName"
let mountName: String = "MountName"
HHFWController.sharedInstance().getDirectory(directory, mountName: mountName) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Получение информации о файле (getFileMeta)
Метод getFileMeta возвращает информацию о файле.
HHFWController.sharedInstance().getFileMeta(_ filename: String, mountName: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
filename | String | Путь к файлу на сервере. |
mountName | String | Название подключения к файловому серверу. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let fileName: String = "FileName"
let mountName: String = "MountName"
HHFWController.sharedInstance().getFileMeta(fileName, mountName: mountName) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Скачивание файла с сервера (getFile)
Метод getFile скачивает файл с сервера мобильной платформы.
HHFWController.sharedInstance().getFile(_ filename: String, fromServerPath serverFileName: String, mountName: String, password: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
filename | String | Путь к файлу в директории мобильного приложения относительно папки Documents. |
fromServerPath, serverFileName | String | Путь к файлу на сервере мобильной платформы. |
mountName | String | Название подключения к файловому серверу. |
password | String | Ключ шифрования файла на мобильном устройстве. При указании непустого ключа скачиваемый файл будет зашифрован на мобильном устройстве с использованием данного ключа. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let fileName: String = "FileName" // путь к файлу в директории мобильного приложения
let serverFileName: String = "ServerFileName" // путь к файлу на сервере мобильной платформы
let mountName: String = "MountName" // название подключения к файловому серверу
let fileKey: String = "FileKey" // ключ шифрования файла
HHFWController.sharedInstance().getFile(fileName, fromServerPath: serverFileName, mountName: mountName, password: fileKey) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера мобильной платформы и сам результат запроса
}
Загрузка файла на сервер (putFile)
Метод putFile загружает файл на сервер мобильной платформы.
HHFWController.sharedInstance().putFile(_ filename: String, toServerPath serverFileName: String, mountName: String, password: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
filename | String | Путь к файлу в директории мобильного приложения относительно папки Documents. |
toServerPath, serverFileName | String | Путь к файлу на сервере мобильной платформы. |
mountName | String | Название подключения к файловому серверу. |
password | String | Ключ расшифровки файла на мобильном устройстве. При указании непустого ключа, загружаемый файл будет расшифрован с использованием данного ключа и загружен на сервер мобильной платформы. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let fileName: String = "FileName" // путь к файлу в директории мобильного приложения
let serverFileName: String = "ServerFileName" // путь к файлу на сервере мобильной платформы
let mountName: String = "MountName" // название подключения к файловому серверу
let fileKey: String = "FileKey" // ключ расшифровки файла
HHFWController.sharedInstance().putFile(fileName, toServerPath: serverFileName, mountName: mountName, password: fileKey) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера мобильной платформы и сам результат запроса
}
Удаление файла с сервера (deleteFile)
Метод deleteFile удаляет файл с сервера мобильной платформы.
HHFWController.sharedInstance().deleteFile(_ filename: String, mountName: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
filename | String | Путь к файлу на сервере. |
mountName | String | Название подключения к файловому серверу. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let fileName: String = "FileName"
let mountName: String = "MountName"
HHFWController.sharedInstance().deleteFile(fileName, mountName: mountName) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Проверка ключа шифрования (checkPassword)
Метод checkPassword проверяет валидность ключа шифрования, указанного в параметрах метода.
HHFWController.sharedInstance().checkPassword(_ filename: String, password: String) -> Bool
Входные параметры:
Параметр | Тип данных | Описание |
filename | String | Путь к исходному файлу. |
password | String | Ключ шифрования файла. |
Метод возвращает значение true при использовании валидного ключа шифрования, иначе false.
Пример:
let fileName: String! = "FileName"
let fileKey: String! = "FileKey"
let passwordIsValid = HHFWController.sharedInstance().checkPassword(fileName, password: fileKey)
Расшифровка файла в новый файл (decryptFile)
Метод decryptFile расшифровывает файл и помещает расшифрованное содержимое в новый файл.
HHFWController.sharedInstance().decryptFile(_ filename: String, toFile decryptedFilename: String, withPassword password: String)
Входные параметры:
Параметр | Тип данных | Описание |
filename | String | Путь к файлу, в который будет загружено содержимое расшифрованного файла. |
toFile, decryptedFilename | String | Путь к файлу, который будет расшифрован. |
withPassword, password |
String | Ключ шифрования файла на мобильном устройстве. |
Пример:
let fileName: String = "FileName"
let fileKey: String = "FileKey"
let decryptedFilename: String = "DecryptedFilename"
HHFWController.sharedInstance().decryptFile(fileName, toFile: decryptedFilename, withPassword: fileKey)
Расшифровка файла в строку (decryptFileToString)
Метод decryptFileToString расшифровывает файл и помещает расшифрованное содержимое в строку.
HHFWController.sharedInstance().decryptFileToString(_ filename: String, withPassword password: String) -> String
Входные параметры:
Параметр | Тип данных | Описание |
filename | String | Путь к файлу, который будет расшифрован в директории мобильного приложения относительно папки Documents. |
withPassword, password |
String | Ключ шифрования файла на мобильном устройстве. |
Пример:
let fileName: String = "FileName"
let fileKey: String = "FileKey"
let decryptString: String = HHFWController.sharedInstance().decryptFileToString(fileName, withPassword: fileKey)
Расшифровка файла в байтовый буфер (decryptFileToData)
Метод decryptFileToData расшифровывает файл и помещает расшифрованное содержимое в байтовый буфер.
HHFWController.sharedInstance().decryptFileToData(_ filename: String, withPassword password: String) -> Data
Входные параметры:
Параметр | Тип данных | Описание |
filename | String | Путь к файлу, который будет расшифрован в директории мобильного приложения относительно папки Documents. |
withPassword, password |
String | Ключ шифрования файла на мобильном устройстве. |
Пример:
let fileName: String = "FileName"
let fileKey: String = "FileKey"
let decryptData: Data = HHFWController.sharedInstance().decryptFileToData(fileName, withPassword: password)
Расшифровка строки в файл (decryptString)
Метод decryptString расшифровывает строку в файл в рамках локальной директории приложения.
HHFWController.sharedInstance().decryptString(_ string: String, toFile decryptedFilename: String, withPassword password: String) -> Bool
Входные параметры:
Параметр | Тип данных | Описание |
string | String | Строка, которая должна быть расшифрована. |
toFile, decryptedFilename | String | Путь к расшифрованному файлу. |
withPassword, password | String | Ключ шифрования строки на мобильном устройстве. |
Метод возвращает значение true при успешном выполнении операции, иначе false.
Пример:
let encryptedString: String = "EncryptedString"
let fileName: String = "Filename.txt"
let password: String = "Password"
let success = HHFWController.sharedInstance().decryptString(string, toFile: fileName, withPassword: password)
Расшифровка строки в новую строку (decryptStringToString)
Метод decryptStringToString расшифровывает строку в новую строку.
HHFWController.sharedInstance().decryptStringToString(_ string: String, withPassword password: String) -> String
Входные параметры:
Параметр | Тип данных | Описание |
string | String | Строка, которая должна быть расшифрована. |
withPassword, password | String | Ключ шифрования строки на мобильном устройстве. |
Пример:
let encryptedString: String = "EncryptedString"
let password: String = "Password"
let decryptedString = HHFWController.sharedInstance().decryptStringToString(encryptedString, withPassword: password)
Локальное шифрование байтового буфера в файл (encryptData)
Метод encryptData зашифровывает байтовый буфер в файл в рамках локальной директории приложения.
HHFWController.sharedInstance().encryptData(_ data: Data, toFile filename: String, withPassword password: String) -> Bool
Входные параметры:
Параметр | Тип данных | Описание |
data | Data | Байтовый буфер, который должен быть зашифрован. |
toFile, filename | String | Путь к файлу с зашифрованным байтовым буфером. |
withPassword, password | String | Ключ шифрования файла. |
Метод возвращает значение true при успешном выполнении операции, иначе false.
Пример:
let data: Data = Data()
let encryptedFileName: String = "EncryptedFileName"
let fileKey: String = "FileKey"
let encryptionSuccess = HHFWController.sharedInstance().encryptData(data, toFile filename: encryptedFileName, withPassword password: fileKey)
Локальное шифрование файла в новый файл (encryptFile)
Метод encryptFile зашифровывает файл в новый файл в рамках локальной директории приложения.
HHFWController.sharedInstance().encryptFile(_ filename: String, toFile encryptedFilename: String, withPassword password: String) -> Bool
Входные параметры:
Параметр | Тип данных | Описание |
filename | String | Путь к исходному файлу. |
toFile, encryptedFilename | String | Путь к зашифрованному файлу. |
withPassword, password | String | Ключ шифрования файла. |
Метод возвращает значение true при успешном выполнении операции, иначе false.
Пример:
let fileName: String = "FileName"
let encryptedFileName: String = "EncryptedFileName"
let fileKey: String = "FileKey"
let encryptionSuccess = HHFWController.sharedInstance().encryptFile(fileName, toFile: encryptedFileName, withPassword: fileKey)
Локальное шифрование файла в строку (encryptFileToString)
Метод encryptFileToString зашифровывает файл в строку в рамках локальной директории приложения.
HHFWController.sharedInstance().encryptFileToString(_ filename: String, withPassword password: String) -> String
Входные параметры:
Параметр | Тип данных | Описание |
filename | String | Путь к файлу. |
withPassword, password | String | Ключ шифрования файла на мобильном устройстве. |
Пример:
let fileName: String = "Filename.txt"
let password: String = "Password"
let encryptedString = HHFWController.sharedInstance().encryptFileToString(fileName, withPassword: password)
Локальное шифрование строки в файл (encryptString)
Метод encryptString зашифровывает строку в файл в рамках локальной директории приложения.
HHFWController.sharedInstance().encryptString(_ string: String, toFile filename: String, withPassword password: String) -> Bool
Входные параметры:
Параметр | Тип данных | Описание |
string | String | Строка, которая должна быть зашифрована. |
toFile, filename | String | Путь к файлу с зашифрованной строкой. |
withPassword, password | String | Ключ шифрования файла. |
Метод возвращает значение true при успешном выполнении операции, иначе false.
Пример:
let string: String = "String"
let encryptedFileName: String = "EncryptedFileName"
let fileKey: String = "FileKey"
let encryptionSuccess = HHFWController.sharedInstance().encryptString(string, toFile filename: encryptedFileName, withPassword password: fileKey)
Локальное шифрование строки в новую строку (encryptStringToString)
Метод encryptStringToString зашифровывает строку в новую строку.
HHFWController.sharedInstance().encryptStringToString(_ string: String, withPassword password: String) -> String
Входные параметры:
Параметр | Тип данных | Описание |
string | String | Строка, которая должна быть зашифрована. |
withPassword, password | String | Ключ шифрования строки на мобильном устройстве. |
Пример:
let string: String = "Example"
let password: String = "Password"
let encryptedString = HHFWController.sharedInstance().encryptStringToString("Example", withPassword: password)
Использование методов приведено в разделе «Пример работы с шифрованием файлов».
Для получения подробной информации о передаче транзакционных данных обратитесь к разделу «Передача транзакционных данных».
Получение списка всех транзакций (getAllTransactions)
Метод getAllTransactions возвращает список всех транзакций.
HHFWController.sharedInstance().getAllTransactions(_ resourсeName: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourсeName | String | Название ресурса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
HHFWController.sharedInstance().getAllTransactions(resourceName, completionHandler: { (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Получение ответа по ID транзакции (getTransaction)
Метод getTransaction возвращает ответ с сервера мобильной платформы по ID транзакции.
HHFWController.sharedInstance().getTransaction(_ transactionID: String, resourceName name: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
transactionID | String | Идентификатор транзакции. |
resourceName, name | String | Название ресурса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let transactionID: String = UUID().uuidString
let tableCallParams: TableCallParams = TableCallParams(defaultProperty: ())
HHFWController.sharedInstance().table(resourceName, transactionID: transactionID, tableCallParams: tableCallParams, handler: {(jsonResult) in
// Получение ответа на запрос по transactionID
HHFWController.sharedInstance().getTransaction(transactionID, resourceName: resourceName, completionHandler: { (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
})
})
Повторный запрос с указанием ID транзакции для получения табличных данных (retryTable)
Метод retryTable осуществляет повторный запрос к серверу мобильной платформы для получения сохраненных данных, помеченных ID транзакции.
Примечание. Метод используется после получения табличных данных ресурса без загрузки в базу данных.
HHFWController.sharedInstance().retryTable(_ resourсeName: String, transactionID: String?, tableCallParams: TableCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
transactionID | String? | Идентификатор транзакции. |
tableCallParams | TableCallParams? | Экземпляр класса TableCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let tableCallParams: TableCallParams = TableCallParams(defaultProperty: ())
HHFWController.sharedInstance().retryTable(resourceName, transactionID: transactionID, tableCallParams: tableCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Повторный запрос с указанием ID транзакции для асинхронного получения табличных данных без загрузки в базу данных (retryTableAsync)
Метод retryTableAsync осуществляет повторный запрос к серверу мобильной платформы для асинхронного получения табличных данных по ID транзакции без загрузки в базу данных.
Примечание. Метод используется после асинхронного запроса табличных данных ресурса без загрузки в базу данных.
HHFWController.sharedInstance().retryTableAsync(_ resourceName: String?, transactionID: String?, tableCallParams: TableCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
transactionID | String? | Идентификатор транзакции. |
tableCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let transactionID: String = "1234-5678-9012-3456-7890"
let requestCallParams: RequestCallParams = RequestCallParams(defaultDb: ())
requestCallParams?.dataBasePath = fullDatabaseURL.path
HHFWController.sharedInstance().retryTableAsync(resourceName, transactionID: transactionID, tableCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Повторный запрос с указанием ID транзакции для синхронной загрузки табличных данных в базу данных (retryTableStream)
Метод retryTableStream осуществляет повторный запрос к серверу мобильной платформы для синхронной загрузки табличных данных по ID транзакции в базу данных.
Примечание. Метод используется после синхронной загрузки табличных данных ресурса в базу данных.
HHFWController.sharedInstance().retryTableStream(_ resourceName: String, withCache: Bool, transactionID: String?, tableCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
withCache | Bool | Признак, определяющий ведение кэширования таблиц в локальной базе данных. |
transactionID | String? | Идентификатор транзакции. |
tableCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let isCached: Bool = true
let transactionID: String = "1234-5678-9012-3456-7890"
let requestCallParams: RequestCallParams = RequestCallParams(defaultDb: ())
requestCallParams?.dataBasePath = fullDatabaseURL.path
HHFWController.sharedInstance().retryTableStream(resourceName, withCache: isCached, transactionID: transactionID, tableCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Повторный запрос с указанием ID транзакции для асинхронной загрузки табличных данных в базу данных (retryTableStreamAsync)
Метод retryTableStreamAsync осуществляет повторный запрос к серверу мобильной платформы для асинхронной загрузки табличных данных по ID транзакции в базу данных.
Примечание. Метод используется после асинхронной загрузки табличных данных ресурса в базу данных.
HHFWController.sharedInstance().retryTableStreamAsync(_ resourceName: String?, withCache: Bool, transactionID: String?, tableCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String? | Название ресурса. |
withCache | Bool | Признак, определяющий ведение кэширования таблиц в локальной базе данных. |
transactionID | String? | Идентификатор транзакции. |
tableCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let isCached: Bool = true
let transactionID: String = "1234-5678-9012-3456-7890"
let requestCallParams: RequestCallParams = RequestCallParams(defaultDb: ())
requestCallParams?.dataBasePath = fullDatabaseURL.path
HHFWController.sharedInstance().retryTableStreamAsync(resourceName, withCache: isCached, transactionID: transactionID, tableCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Удаление информации о транзакции (deleteTransaction)
Метод deleteTransaction удаляет информацию о транзакции.
HHFWController.sharedInstance().deleteTransaction(_ transactionID: String, resourceName name: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
transactionID | String | Идентификатор транзакции. |
resourceName, name | String | Название ресурса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let transactionID: String = "c4f64acd-7e0f-4bd7-ba32-9a15271f3eb4"
HHFWController.sharedInstance().deleteTransaction(transactionID, resourceName: resourceName, completionHandler: { (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
})
Использование методов приведено в разделе «Пример работы с транзакциями».
Перед выполнением методов настройте параметры подключения к КриптоПро DSS.
Получение списка сертификатов (getCertificatesWithPassword)
Метод getCertificatesWithPassword возвращает список сертификатов.
HHFWController.sharedInstance().getCertificatesWithPassword(_ password: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
password | String | DSS пароль пользователя. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let dssPassword: String = "DSSPassword"
HHFWController.sharedInstance().getCertificatesWithPassword(dssPassword) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Получение истории цифровых подписей (signs)
Метод signs возвращает список цифровых подписей, которые были созданы текущим пользователем.
HHFWController.sharedInstance().signs(completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
HHFWController.sharedInstance().signs { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Отправка документа на подпись (signCertificate)
Метод signCertificate отправляет документ на подпись.
HHFWController.sharedInstance().signCertificate(withResource resource: String, table: String, params requestParams: String, column: String, hhiveId: String, password: String, certificateId: String, certificatePin: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
withResource, resource | String | Название ресурса. |
table | String | Имя таблицы. |
params, requestParams | String | JSON-строка с параметрами, с которыми выполнялся запрос. |
column | String | Имя столбца в таблице. |
hhiveId | String | Номер строки в таблице. |
password | String | DSS пароль. |
certificateId | String | Идентификатор сертификата. |
certificatePin | String | PIN сертификата. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let tableName: String = "TableName"
let params: String = "{key1: value1, key2: value2, ...}"
let column: String = "ColumnName"
let hhiveId: String = "HhiveId"
let dssPassword: String = "DSSPassword"
let certificateId: String = "CertificateId"
let certificatePin: String = "CertificatePin"
HHFWController.sharedInstance().signCertificate(
withResource: resourceName,
table: tableName,
params: params,
column: column,
hhiveId: hhiveId,
password: dssPassword,
certificateId: certificateId,
certificatePin: certificatePin
) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
После выполнения метода документ будет подписан и сервер мобильной платформы вернет идентификатор подписи в виде {"signature_id": 35}.
Удаление цифровой подписи (remove)
Метод remove удаляет цифровую подпись.
HHFWController.sharedInstance().remove(withSignId signId: Int, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
withSignId, signId | Int | Идентификатор подписи. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let signatureID: Int = 1
HHFWController.sharedInstance().remove(withSignId: signatureId) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование методов приведено в разделе «Пример работы с цифровой подписью».
Обращение к WEB-ресурсам осуществляется по принципу прокси. Сервер мобильной платформы выполняет роль посредника между мобильным устройством и WEB-ресурсами.
Перед выполнением метода убедитесь, что открыто соединение с локальной базой данных и загружены схемы ресурсов.
Универсальнй запрос к WEB-ресурсу (webRequest)
Метод webRequest отправляет универсальный запрос к WEB-ресурсу.
HHFWController.sharedInstance().webRequest(_ type: WebRequestType, resourceName: String, requestCallParams: RequestCallParams, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
type | WebRequestType | Используемый HTTP-метод:
|
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let httpMethod: WebRequestType = .Post
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().webRequest(httpMethod, resourceName: resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование HTTP-метода POST при запросе к WEB-ресурсу (webPost)
Метод webPost отправляет запрос к WEB-ресурсу с использованием HTTP-метода POST.
HHFWController.sharedInstance().webPost(_ resourceName: String, requestCallParams: RequestCallParams, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().webPost(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование HTTP-метода GET при запросе к WEB-ресурсу (webGet)
Метод webGet отправляет запрос к WEB-ресурсу с использованием HTTP-метода GET.
HHFWController.sharedInstance().webGet(_ resourceName: String, requestCallParams: RequestCallParams, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().webGet(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование HTTP-метода TRACE при запросе к WEB-ресурсу (webTrace)
Метод webTrace отправляет запрос к WEB-ресурсу с использованием HTTP-метода TRACE.
HHFWController.sharedInstance().webTrace(_ resourceName: String, requestCallParams: RequestCallParams, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().webTrace(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование HTTP-метода HEAD при запросе к WEB-ресурсу (webHead)
Метод webHead отправляет запрос к WEB-ресурсу с использованием HTTP-метода HEAD.
HHFWController.sharedInstance().webHead(_ resourceName: String, requestCallParams: RequestCallParams, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().webHead(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование HTTP-метода PUT при запросе к WEB-ресурсу (webPut)
Метод webPut отправляет запрос к WEB-ресурсу с использованием HTTP-метода PUT.
HHFWController.sharedInstance().webPut(_ resourceName: String, requestCallParams: RequestCallParams, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().webPut(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование HTTP-метода DELETE при запросе к WEB-ресурсу (webDelete)
Метод webDelete отправляет запрос к WEB-ресурсу с использованием HTTP-метода DELETE.
HHFWController.sharedInstance().webDelete(_ resourceName: String, requestCallParams: RequestCallParams, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().webDelete(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование HTTP-метода PATCH при запросе к WEB-ресурсу (webPatch)
Метод webPatch отправляет запрос к WEB-ресурсу с использованием HTTP-метода PATCH.
HHFWController.sharedInstance().webPatch(_ resourceName: String, requestCallParams: RequestCallParams, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().webPatch(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование HTTP-метода OPTIONS при запросе к WEB-ресурсу (webOptions)
Метод webOptions отправляет запрос к WEB-ресурсу с использованием HTTP-метода OPTIONS.
HHFWController.sharedInstance().webOptions(_ resourceName: String, requestCallParams: RequestCallParams, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let resourceName: String = "ResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().webOptions(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Обращение к продукту «Форсайт. Аналитическая платформа» осуществляется аналогично обращению к WEB-ресурсам.
Запрос к продукту «Форсайт. Аналитическая платформа» (request)
Метод request отправляет запрос продукту «Форсайт. Аналитическая платформа».
HHFWController.sharedInstance().request(_ resourсeName: String, requestCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName | String | Название ресурса. |
requestCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
let resourceName: String = "FAPResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
requestCallParams?.data = "{}"
HHFWController.sharedInstance().request(resourceName, requestCallParams: requestCallParams) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование метода приведено в примере «Пример работы с продуктом «Форсайт. Аналитическая платформа».
Запись ошибки в журнал (logFatal)
Метод logFatal записывает в журнал ошибку, после которой приложение может работать, но результаты могут быть неожиданными. Ошибка выводится в консоль.
Примечание. Для записи ошибки в журнал уровень логирования должен принимать значение 6.
HHFWController.sharedInstance().logFatal(_ msg: String?)
Входные параметры:
Параметр | Тип данных | Описание |
msg | String? | Текст ошибки. |
Пример:
let message: String = "Error Message"
HHFWController.sharedInstance().logFatal(message)
Запись сообщения в журнал (logTrace)
Метод logTrace записывает в журнал сообщение, содержащее следующую информацию: статистика, ключевые настройки, статус старта/остановки и другое. Сообщение выводится в консоль.
Примечание. Для записи сообщения в журнал уровень логирования должен принимать значение 4.
HHFWController.sharedInstance().logTrace(_ msg: String?)
Входные параметры:
Параметр | Тип данных | Описание |
msg | String? | Текст сообщения. |
Пример:
let message: String = "Trace Message"
HHFWController.sharedInstance().logTrace(message)
Запись предупреждения в журнал (logWarning)
Метод logWarning записывает в журнал предупреждение - пользователю/разработчику следует обратить внимание на результат работы приложения. Предупреждение выводится в консоль.
Примечание. Для записи предупреждения в журнал уровень логирования должен принимать значение 5.
HHFWController.sharedInstance().logWarning(_ msg: String?)
Входные параметры:
Параметр | Тип данных | Описание |
msg | String? | Текст предупреждения. |
Пример:
let message: String = "Warning Message"
HHFWController.sharedInstance().logWarning(message)
Установка пути к базе данных с логами (setLogDBPath)
Метод setLogDBPath устанавливает путь к базе данных, в которую будут записываться логи.
HHFWController.sharedInstance().setLogDBPath(_ databasePath: String, password: String)
Входные параметры:
Параметр | Тип данных | Описание |
databasePath | String | Путь к файлу базы данных относительно корневого каталога файловой системы мобильного устройства. Примечание. База данных должна отличаться от базы данных для работы с ресурсами. |
password | String | Ключ шифрования базы данных. |
Пример:
let databasePath: String = "DatabasePath"
let databaseKey: String = "DatabaseKey"
HHFWController.sharedInstance().setLogDBPath(databasePath, password: databaseKey)
Вывод лога работы фреймворка в консоль (setLogEnabled)
Метод setLogEnabled определяет вывод лога работы фреймворка в консоль.
HHFWController.sharedInstance().setLogEnabled(_ enabled: Bool)
Входные параметры:
Параметр | Тип данных | Описание |
enabled | Bool | Определение вывода лога работы фреймворка в консоль. Возможные значения:
|
Пример:
let isDebugMode: Bool = true
HHFWController.sharedInstance().setLogEnabled(isDebugMode)
Установка уровня логирования (setLogLevel)
Метод setLogLevel устанавливает уровень логирования.
Уровень логирования позволяет управлять количеством информации, которая возвращается при выполнении методов фреймворка и выводится в поле отладочной информации в среде разработки. Управление выводом информации облегчает разработку.
Например, при первом уровне логирования будут выводиться json-ответы с сервера мобильной платформы на запросы данных и SQL-запросы к локальной базе данных. При смене уровня логирования с первого на третий json выводиться не будет.
HHFWController.sharedInstance().setLogLevel(_ level: Int32)
Входные параметры:
Параметр | Тип данных | Описание |
level | Int32 | Уровень логирования:
|
Пример:
let logLevel: Int32 = 1
HHFWController.sharedInstance().setLogLevel(logLevel)
Отправка логов на сервер мобильной платформы (syncLogs)
Метод syncLogs отправляет логи с мобильного устройства на сервер мобильной платформы.
HHFWController.sharedInstance().syncLogs(withClean: Bool, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
withClean |
Bool | Признак очистки записей журнала после синхронизации логов с мобильного устройства на сервере мобильной платформы:
|
completionHandler, handler |
HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let withClean: Bool = true
HHFWController.sharedInstance().syncLogs(withClean: withClean) { (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Получение расписания синхронизации логов (syncLogsSchedule)
Метод syncLogsSchedule запрашивает расписание синхронизации логов на сервере мобильной платформы.
HHFWController.sharedInstance().syncLogsSchedule(completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
completionHandler, handler |
HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
HHFWController.sharedInstance().syncLogsSchedule() { (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Метод state возвращает состояние учётных данных пользователя и схемы ресурсов в формате JSON.
HHFWController.sharedInstance().state() -> String?
Пример:
let state = HHFWController.sharedInstance().state()
Установка состояния (setState)
Метод setState устанавливает состояние в соответствии с заданным значением входного параметра.
HHFWController.sharedInstance().setState(_ state: String) -> Bool
Входные параметры:
Параметр | Тип данных | Описание |
state | String | Состояние в формате JSON. Примечание. Если параметр принимает пустое значение, то текущее состояние будет сброшено. |
Метод возвращает значение true при успешном выполнении операции, иначе false.
Пример:
let state: String = "state"
HHFWController.sharedInstance().setState(state)
См. также:
Фреймворк HHFW | Примеры использования iOS-фреймворка