Для разработки мобильного приложения в запросах к серверу мобильной платформы используются методы 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» содержит статус аутентификации, описание ошибок и другую информацию
// Также в этом блоке можно открыть соединение с базой данных
}
После выполнения метода будет получен новый токен пользователя. Токен используется в каждом запросе к серверу мобильной платформы.
Отмена аутентификации (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 | Ключ шифрования базы данных. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
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 | Путь к файлу базы данных относительно корневого каталога файловой системы мобильного устройства. |
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 | Путь к файлу базы данных относительно корневого каталога файловой системы мобильного устройства. |
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 получает схемы доступных ресурсов и автоматически создает в базе данных соответствующие таблицы.
HHFWController.sharedInstance().resources(_ database: String?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
database | String | Путь к файлу базы данных относительно корневого каталога файловой системы мобильного устройства. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let databaseName: String = "database.sqlite"
HHFWController.sharedInstance().resources(databaseName){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе схемы, ответ сервера и саму схему ресурсов
}
После выполнения метода схема ресурсов будет автоматически записана в указанную базу данных.
Синхронная загрузка дельты в базу данных (deltaStream)
Метод deltaStream синхронно загружает дельту в базу данных.
Примечание. Перед выполнением метода загрузите схему ресурсов.
HHFWController.sharedInstance().deltaStream(_ resourseName: String, deltaStreamCallParams: DeltaStreamCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourseName | String | Название ресурса. |
deltaStreamCallParams | DeltaStreamCallParams? | Экземпляр класса DeltaStreamCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
При инициализации с defaultDb используется имя «hhfw.sqlite» по умолчанию. Если искомое имя базы данных отличается, то после инициализации DeltaStreamCallParams необходимо указать полный путь до базы данных с помощью свойства dataBasePath.
Пример:
let deltaStreamCallParams: DeltaStreamCallParams = DeltaStreamCallParams(defaultDb: ())
deltaStreamCallParams?.dataBasePath = fullDatabaseURL.path
let resourceName: String = "ResourceName" // название ресурса
HHFWController.sharedInstance().deltaStream(resourceName, deltaStreamCallParams: deltaStreamCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
После выполнения метода дельта данных будет автоматически синхронно записана в указанную базу данных согласно предварительно полученной схеме.
Асинхронная загрузка дельты в базу данных (deltaStreamAsync)
Метод deltaStreamAsync асинхронно загружает дельту в базу данных.
Примечание. Перед выполнением метода загрузите схему ресурсов.
HHFWController.sharedInstance().deltaStreamAsync(resourceName: String, withCache: Bool, deltaStreamCallParams: DeltaStreamCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourseName | String | Название ресурса. |
withCache | Bool | Флажок, который определяет, ведется ли кэширование таблиц в локальной базе. |
deltaStreamCallParams | DeltaStreamCallParams? | Экземпляр класса DeltaStreamCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
При инициализации с 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(_ resourseName: String, transactionID: String?, tableCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourseName | String | Название ресурса. |
transactionID | String? | Идентификатор транзакции. |
tableCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
При инициализации с defaultDb используется имя «hhfw.sqlite» по умолчанию. Если искомое имя базы данных отличается, то после инициализации RequestCallParams необходимо указать полный путь до базы данных с помощью свойства dataBasePath.
Пример:
let requestCallParams: RequestCallParams = RequestCallParams(defaultDb: ())
requestCallParams?.dataBasePath = fullDatabaseURL.path
let resourceName: String = "ResourceName" // название ресурса
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(_ resourseName: String, withCache: Bool, transactionID: String, tableCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourseName | String | Название ресурса. |
withCache | Bool | Флажок, который определяет, ведется ли кэширование таблиц в локальной базе. |
transactionID | String? | Идентификатор транзакции. |
tableCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
При инициализации с defaultDb используется имя «hhfw.sqlite» по умолчанию. Если искомое имя базы данных отличается, то после инициализации RequestCallParams необходимо указать полный путь до базы данных с помощью свойства dataBasePath.
Пример:
let requestCallParams: RequestCallParams = RequestCallParams(defaultDb: ())
requestCallParams?.dataBasePath = fullDatabaseURL.path
let resourceName: String = "ResourceName" // название ресурса
HHFWController.sharedInstance().tableStreamAsync(resourceName, withCache: isCached, transactionID: nil, tableCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
После выполнения метода табличные данные будут автоматически синхронно записаны в указанную базу данных согласно предварительно полученной схеме.
Синхронное получение табличных данных ресурса без загрузки в базу данных (table)
Метод table синхронно запрашивает табличные данные ресурса без загрузки в базу данных.
HHFWController.sharedInstance().table(_ resourseName: String, transactionID: String?, tableCallParams: TableCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourseName | String | Название ресурса. |
transactionID | String? | Идентификатор транзакции. |
tableCallParams | TableCallParams? | Экземпляр класса TableCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let tableCallParams: TableCallParams = TableCallParams(defaultProperty: ())
HHFWController.sharedInstance().table(resourceName, transactionID: nil, tableCallParams: tableCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Асинхронное получение табличных данных ресурса без загрузки в базу данных (tableAsync)
Метод tableAsync асинхронно запрашивает табличные данные ресурса без загрузки в базу данных.
HHFWController.sharedInstance().tableAsync(_ resourseName: String, transactionID: String, tableCallParams: TableCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourseName | String | Название ресурса. |
transactionID | String? | Идентификатор транзакции. |
tableCallParams | TableCallParams? | Экземпляр класса TableCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let tableCallParams: TableCallParams = TableCallParams(defaultProperty: ())
HHFWController.sharedInstance().tableAsync(resourceName, transactionID: nil, tableCallParams: tableCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Синхронный запрос к ресурсу без загрузки в базу данных (request)
Метод request синхронно отправляет универсальный запрос к ресурсу без загрузки в базу данных.
HHFWController.sharedInstance().request(_ resourseName: String, requestCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourseName | String | Название ресурса. |
RequestCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Использование метода актуально при работе с WEB-ресурсами, где сервер мобильной платформы выступает в роли прокси.
Пример:
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().request(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Асинхронный запрос к ресурсу без загрузки в базу данных (requestAsync)
Метод requestAsync асинхронно отправляет универсальный запрос к ресурсу без загрузки в базу данных.
HHFWController.sharedInstance().requestAsync(_ resourseName: String, requestCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourseName | String | Название ресурса. |
RequestCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Использование метода актуально при работе с WEB-ресурсами, где сервер мобильной платформы выступает в роли прокси.
Пример:
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
HHFWController.sharedInstance().requestAsync(resourceName, requestCallParams: requestCallParams){ (jsonResult: Any?) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Возобновление загрузки ресурса (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» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Установка пути к папке с файлами текущего состояния загрузки ресурса (setDownloadPath)
Метод setDownloadPath устанавливает путь к папке в директории мобильного приложения, где будут храниться файлы текущего состояния загрузки ресурсов.
HHFWController.sharedInstance().setDownloadPath(_ path: String)
Входной параметр:
Параметр | Тип данных | Описание |
path | String | Путь к папке базы данных относительно корневого каталога файловой системы мобильного устройства, где будут храниться файлы текущего состояния загрузки ресурсов. Если заданной папки не существует, то автоматически выполняется создание папки по заданному пути. Если папку невозможно создать, то хранение файлов текущего состояния загрузки ресурсов осуществляется в папке «Documents». |
Пример:
let path = downloadFileURL.path
HHFWController.sharedInstance().setDownloadPath(path)
Использование методов приведено в примерах «Примеры работы с ресурсами».
Для работы с 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» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Подписка на сообщения (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» содержит информацию о запросе, ответ сервера мобильной платформы и сам результат запроса
}
Расшифровка файла в новый файл (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)
Удаление файла с сервера (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» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование методов приведено в примере «Пример работы с шифрованием файлов».
Для получения подробной информации о передаче транзакционных данных обратитесь к разделу «Передача транзакционных данных».
Получение списка всех транзакций (getAllTransactionResourceName)
Метод getAllTransactionResourceName возвращает список всех транзакций.
HHFWController.sharedInstance().getAllTransactionResourceName(_ name: String, completionHandler handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
name | String | Название ресурса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
HHFWController.sharedInstance().getAllTransactionResourceName(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(_ resuurceName: String, transactionID: String?, tableCallParams: TableCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourceName, name | String | Название ресурса. |
transactionID | String? | Идентификатор транзакции. |
tableCallParams | TableCallParams? | Экземпляр класса TableCallParams, описывающий параметры запроса. |
completionHandler, handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Пример:
let tableCallParams: TableCallParams = TableCallParams(defaultProperty: ())
HHFWController.sharedInstance().retryTable(resourceName, transactionID: transactionID, tableCallParams: tableCallParams){ (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-ресурсам (request)
Метод request отправляет запрос WEB-ресурсам.
HHFWController.sharedInstance().request(_ resourseName: String, requestCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourseName | String | Название ресурса. |
tableCallParams | RequestCallParams? | Экземпляр класса RequestCallParams, описывающий параметры запроса. |
handler | HHFWCompletionHandler? | Функция обратного вызова, которая выполняется по окончании выполнения запроса. По умолчанию принимает значение «nil». |
Если в используемом экземпляре класса RequestCallParams задается параметр «data» (json-строка), то будет выполняться POST-запрос, в случае пустой строки – GET-запрос.
Пример:
let resourceName: String = "WebResourceName"
let requestCallParams: RequestCallParams = RequestCallParams(defaultProperty: ())
// Для POST-запроса
requestCallParams?.data = "{}"
HHFWController.sharedInstance().request(resourceName, requestCallParams: requestCallParams) { (jsonResult) in
// В данном блоке можно обработать ответ с сервера мобильной платформы «jsonResult», который представлен в виде json
// «jsonResult» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование метода приведено в примере «Пример работы с WEB-ресурсами».
Обращение к продукту «Форсайт. Аналитическая платформа» осуществляется аналогично обращению к WEB-ресурсам.
Запрос к продукту «Форсайт. Аналитическая платформа» (request)
Метод request отправляет запрос продукту «Форсайт. Аналитическая платформа».
HHFWController.sharedInstance().request(_ resourseName: String, requestCallParams: RequestCallParams?, handler: HHFWCompletionHandler? = nil)
Входные параметры:
Параметр | Тип данных | Описание |
resourseName | String | Название ресурса. |
tableCallParams | 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» содержит информацию о запросе, ответ сервера и сам результат запроса
}
Использование метода приведено в примере «Пример работы с продуктом «Форсайт. Аналитическая платформа».
Установка уровня логирования (setLogLevel)
Метод setLogLevel устанавливает уровень логирования.
Уровень логирования позволяет управлять количеством информации, которая возвращается при выполнении методов фреймворка и выводится в поле отладочной информации в среде разработки. Управление выводом информации облегчает разработку.
Например, при первом уровне логирования будут выводится json-ответы с сервера мобильной платформы на запросы данных и SQL-запросы к локальной базе данных. При смене уровня логирования с первого на третий json выводиться не будет.
HHFWController.sharedInstance().setLogLevel(_ level: Int32)
Входные параметры:
Параметр | Тип данных | Описание |
level | Int32 | Уровень логирования:
|
Пример:
let logLevel: Int32 = 1
HHFWController.sharedInstance().setLogLevel(logLevel)
Вывод лога работы фреймворка в консоль (setLogEnabled)
Метод setLogEnabled определяет вывод лога работы фреймворка в консоль.
HHFWController.sharedInstance().setLogEnabled(_ enabled: Bool)
Входные параметры:
Параметр | Тип данных | Описание |
enabled | Bool | Определение вывода лога работы фреймворка в консоль. Возможные значения:
|
Пример:
let isDebugMode: Bool = true
HHFWController.sharedInstance().setLogEnabled(isDebugMode)
См. также:
Фреймворк iOS | Инициализация iOS-фреймворка | Примеры использования iOS-фреймворка