iOS Lib Overview
We are working on a new SDK that will replace this Javascript library during early 2023. Please check the section Building your own Experience and Embedding Experiences using the SDK sections to find out more.
Monterosa / Interaction Cloud (M/IC) was previously known as LViS. As such, you will find API documentation using the term.
Add to your Cartfile file
git "[email protected]:mobile/lvis_ios.git" "master"
The LViS library internally depends on Enmasse library and its dependencies
git "[email protected]:mobile/enmasse_ios.git" "swift_3"
github "SwiftyJSON/SwiftyJSON" ~> 3.1.4
github "Alamofire/Alamofire" == 4.8.0
There are 4 basic blocks that you need to work with:
To listen to LViS changes you need to set delegate:
LViS.sharedInstance.delegate = self
Where LViSDelegate is
public protocol LViSDelegate: class {
func onInitialized(_ reinitialize: Bool)
func onScheduleReinitialize(_ delay: Double)
func onEventPublished(_ event: Event)
func onSettingsChanged()
func onMessageReceived(_ message: Message)
}
LViS needs to be initialized with projectUuid and host
func setProject(host: String, projectuuId: String)
It's possible to load App Setup before connecting to LViS
func loadSettings(_ completion: @escaping ((_ settings: JSON?, _ error: Error?) -> Void))
To open LViS
func open()
After you've connected, you can get all events
func getAllEvents() -> [Event]
To subscribe to an event
func subscribe(_ event: Event, completion: @escaping ((_ success: Bool, _ error: Error?) -> Void))
When you've subscribed to event you can listen to its changes:
open var onUpdated: (() -> Void)?
open var onStateChanged: ((Event.State) -> Void)?
open var onElementPublished: ((Element) -> Void)?
open var onElementUpdated: ((Element) -> Void)?
open var onElementRevoked: ((Element) -> Void)?
From an event you can get all elements that are created inside. You can listen to each element's changes. For example, to listen to Regular poll's changes:
if let regularPoll = element as? BasePoll {
regularPoll.onVote = {}
regularPoll.onResults = {
let results = regularPoll.results
let resultsPerSource = regularPoll.resultsPerSource
let votersPerSource = regularPoll.votersPerSource
}
regularPoll.onStateChanged = { state in
}
}
After you've done with LViS you need to close it to clean resources:
func close()
If you need to manage logs:
Log.enableTags(tags: [String]) //Supported tags are [String(TransportApi), String(Enmasse), String(LViS)]
Log.onLogged = { logMessage in
}
Last modified 9mo ago