IMGA SDK for iOS is library for iOS providing a powerful high-level webview abstractions to interact with the IMGA web app.
IMGA SDK supports multiple methods for installing the library in a project.
To integrate IMGA SDK into your Xcode project using CocoaPods, specify it in your Podfile
:
pod 'IMGASDK', :git => 'git@github.com:IMGARENA/front-row-seat-ios-cocoapod.git', :tag => 'v0.9'
To integrate IMGA SDK into your Swift project using SPM, specify it in your Package.swift
dependencies: [
.package(url: "https://github.com/IMGARENA/front-row-seat-ios-cocoapod", from: "0.9.0")
],
IMGA SDK requires iOS 14 and xCode 14.1
let imga = IMGASDK(logLevel: .debug)
let eventCentreData:IMGAData = [
"operator": "[OPERATOR-NAME]",
"sport": "golf",
"targetModule": "full",
"eventId": "269",
"language": "en",
"version": "5.x",
"initialContext" : [
"view": "GroupDetail",
"roundNo": "1",
"groupNo": "37"],
"targetElementSelector": "#img-arena-event-centre",
"options":["videoPlaybackEnabled": "false"]
]
//Launch with the event centre data
try? imga.launch(with: eventCentreData) { imgaView in
if let newView = imgaView {
//Do something with the imgaView
}
}
let initialContex:IMGAData = [
"view": "GroupDetail",
"roundNo": "1",
"groupNo": "37"]
let eventCentreDataParams = IMGAEventCentreParams(operatorName: "operatorName",
sport: "sport",
version: "version",
eventId: "eventId",
language: "language",
theme: "theme",
targetModule: "targetModule",
initialContext: initialContex,
options: nil,
targetElementSelector: "targetElementSelector")
//Launch with the event centre data
try? imga.launch(with: eventCentreDataParams) { imgaView in
if let newView = imgaView {
//Do something with the imgaView
}
}
let initialContex:IMGAData = [
"view": "GroupDetail",
"roundNo": "1",
"groupNo": "37"]
let eventCentreDataParams = IMGAEventCentreParams(operatorName: "operatorName",
sport: "sport",
version: "version",
eventId: "eventId",
language: "language",
theme: "theme",
targetModule: "targetModule",
initialContext: initialContex,
options: nil,
targetElementSelector: "targetElementSelector")
//Container where to add the IMGA view
let myContainer = UIView()
//Launch with the event centre data
try? imga.launch(andAddTo: myContainer, with: eventTest1)
//Instance the sdk
let imga = IMGASDK(logLevel: .debug)
//Subscribe to the sdk status changes
imga.onStatusChange = {status, error in
print("Status:\(status)")
if let e = error {
print("Error on status:\(e)")
}
}
There are several types of messages/topics
CONTEXT_UPDATE
: Topic for covering general UI state updates, for example navigation changes or the user selecting a player in the UI.HANDSHAKE_FAILED
: Topic to signify the handshake between Event Centre and your site failed to complete.
//Instance the sdk
let imga = IMGASDK(logLevel: .debug)
imga.onNewMessage = {name, message, error in
print("New Message:\(name)-\(message)")
if let e = error {
print("Error on message:\(e.description)")
}
}
//Instance the sdk
let imga = IMGASDK(logLevel: .debug)
//Stop the instance
imga.stop()
IMGA SDK is owned and maintained by the IMGA Development team.
IMG Media Limited