Listening for Events
You can listen for SDK events by implementing the UpscopeDelegate protocol and assigning it to the shared instance:
Upscope.shared.delegate = self
UpscopeDelegate Protocol
All delegate methods are optional.
extension YourClass: UpscopeDelegate {
func upscope(_ upscope: Upscope, didChangeConnectionState state: ConnectionState) {
// Connection state changed
switch state {
case .inactive:
print("Inactive")
case .connecting:
print("Connecting...")
case .connected:
print("Connected")
case .reconnecting:
print("Reconnecting...")
case .error(let error):
print("Error: \(error.message)")
}
}
func upscopeSessionDidStart(_ upscope: Upscope, agentName: String?) {
print("Session started with \(agentName ?? "an agent")")
}
func upscopeSessionDidEnd(_ upscope: Upscope, reason: SessionEndReason) {
switch reason {
case .userStopped:
print("User ended session")
case .agentStopped:
print("Agent ended session")
case .timeout:
print("Session timed out")
case .error(let error):
print("Session error: \(error.message)")
}
}
func upscope(_ upscope: Upscope, didReceiveCustomMessage message: String, from observerId: String) {
print("Message from \(observerId): \(message)")
}
func upscope(_ upscope: Upscope, didEncounterError error: UpscopeError) {
print("Error: \(error.code) - \(error.message)")
}
func upscope(_ upscope: Upscope, observerDidJoin observer: Observer) {
print("Observer joined: \(observer.name ?? observer.id)")
}
func upscope(_ upscope: Upscope, observerDidLeave observerId: String) {
print("Observer left: \(observerId)")
}
func upscope(_ upscope: Upscope, observerCountDidChange count: Int) {
print("Observers: \(count)")
}
}
Event Reference
| Method | Description |
|---|---|
upscope(_:didChangeConnectionState:) | Called when the connection state changes. |
upscopeSessionDidStart(_:agentName:) | A screen sharing session has started. agentName is the agent's display name if available. |
upscopeSessionDidEnd(_:reason:) | A session has ended. reason indicates why (user stopped, agent stopped, timeout, or error). |
upscope(_:didReceiveCustomMessage:from:) | A custom message was received from an observer. |
upscope(_:didEncounterError:) | An SDK error occurred. |
upscope(_:observerDidJoin:) | An agent started observing the session. The Observer includes id, name, screen dimensions, and focus state. |
upscope(_:observerDidLeave:) | An agent stopped observing the session. |
upscope(_:observerCountDidChange:) | The total number of active observers changed. |
