Обернуть нативный sdk (ios – swift, android – kotlin) для flutter
Задача
Обернуть нативный sdk Wistory (ios – swift, android – kotlin) для flutter.
Назначение sdk – коробочное решение для stories в приложение.
Пример работы: wistory – example.mov
Пример реализации обертки для react-native: https://github.com/Wistory/react-native-wistory
Токен компании для тестирования: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZjU4ODJiNDlkMDY4MTFlZmI3Yzk0ZjIiLCJpYXQiOjE1OTk2MzY xNDh9.mVBXYIIc2wqsxyjzUZNAyeIsweOVl01IWd3oqFrqJmc
"Документация" для ios
Установка
Минимальная версия iOS: 11
Возможно использование sdk через Cocoapods или Carthage.
Для использования через cocoapods необходимо добавить зависимость в Podfile:
use_frameworks!
pod 'Wistory', '~> 0.3.0'
use_frameworks! обязательно
Также в начале файла необходимо прописать источник для podspec:
source 'https://github.com/Wistory/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'
Итоговый пример Podfile:
source 'https://github.com/Wistory/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
target 'wistoryExample' do
use_frameworks!
pod 'Wistory', '~> 0.3.0'
end
Если нужно, запрошу документацию для Carthage
Использование View элемента
Инициализировать sdk и получить ViewController
let wistory = Wistory(with: companyToken, userToken: userToken, usageSettings: .embedded)
.presentingSettings(style: .popover)
.storiesViewController;
companyToken – токен компании, выдаваемый при регистрации. Токен для тестирования sdk: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZjU4ODJiNDlkMDY4MTFlZmI3Yzk0ZjIiLCJpYXQiOjE1OTk2MzY xNDh9.mVBXYIIc2wqsxyjzUZNAyeIsweOVl01IWd3oqFrqJmc
userToken – необязательный параметр. Используется для идентификации пользователя и корректного отображения просмотренных и избранных историй. Если не передавать значение, sdk будет генерировать уникальный токен для устройства
presentingSettings – способ отображения истории при просмотре. Возможные варианты: .popover и .fullscreen
Добавить view, как subview родителя:
parent.addSubview(wistory.view)
Вызвать didMove с родительским контроллером (ViewController):
wistory.didMove(toParent: parentController)
События sdk
Для подписки на события sdk можно использовать delegate реализующий протокол WistoryEventsDelegate. По возможности необходимо пробросить события делегата в приложение на flutter (может быть полезно пользователю например для собственной аналитики)
События делегата:
func onItemsLoaded()
func onRead(story: Wistory.SnapModel)
func onPrevSnap(story: Wistory.SnapModel)
func onNextSnap(story: Wistory.SnapModel)
func onNavigate(action: String, value: String)
func onFavorite(id: String, isFavorite: Bool)
func onRelation(id: String, relation: String)
func onPoll(id: String, snap: Int, option: String)
func onError(error: Error)
Android – TBD
Информация будет в ближайшее время.