Swift Concurrency async/await
The public APIs of the Zendesk SDK support async/await operations. This feature is available only on iOS 13.0.0 and above.
- Initialize the Zendesk SDK and present the messaging view.
Task {
do {
let zendesk = try await Zendesk.initialize(withChannelKey: Const.channelKey, messagingFactory: DefaultMessagingFactory())
if let messagingViewcontroller = zendesk.messaging?.messagingViewController() {
// Present the messaging view controller according to your preference
// for example:
navigationController?.pushViewController(messagingViewcontroller, animated: true)
}
} catch let error {
// Handle any initialization error
}
}
- Authenticate and unauthenticate a user:
func login() {
Task {
do {
let zendeskUser = try await Zendesk.instance?.loginUser(with: "JWT")
} catch let error {
// Handle any authentication error
}
}
}
func logout() {
Task {
do {
try await Zendesk.instance?.logoutUser()
} catch let error {
// Handle any authentication error
}
}
}
- Send a page view event that captures a specific user interaction to the PageView endpoint:
// Create a `PageView` object
let pageView = PageView(pageTitle: pageTitle, url: url)
Task {
do {
try await Zendesk.instance?.sendPageViewEvent(pageView)
} catch let error {
// Handle any error
}
}