Aller au contenu principal

Assistant UX iOS

Rokt UX Helper est un projet open source qui vous aide à rendre de belles expériences client dans un environnement serveur à serveur. Vous pouvez trouver et contribuer au projet sur la page Github.

Ce document décrit le processus d'intégration de RoktUXHelper dans votre application iOS, qui fonctionne en parallèle avec l'intégration Server-to-Server (S2S) pour offrir des expériences pertinentes à vos clients pendant leur passage à la caisse. Ce guide suppose que vous êtes familier avec UIKit/SwiftUI et les concepts de base du développement iOS.

SystèmeVersion
RoktUXHelper0.3.1
iOS15.0+
Gestionnaire de paquetsSwift Package Manager
Swift5+
Xcode15+

import Installation from './_installation.md'; import Configurations from './_configurations.md'; import Events from './_events.md';

Importer les modules requis

Pour commencer à utiliser RoktLayoutView, vous devez importer les modules nécessaires dans votre contrôleur de vue ou votre classe.

import SwiftUI
import RoktUXHelper

Initialiser RoktLayoutView

La classe RoktLayoutView offre plusieurs options d'initialisation, permettant une flexibilité de configuration. Vous pouvez l'initialiser en passant les liaisons et paramètres requis tels que experienceResponse, le nom location, config optionnel et les gestionnaires d'événements.

var body: some View {
RoktLayoutView(experienceResponse: "{experience_response_json}",
location: "RoktEmbedded1",
config: roktConfig,
onUXEvent: { uxEvent in
// Traitez les événements UX ici
},
onPlatformEvent: { platformEvent in
// Envoyez ces événements de plateforme à l'API Rokt
})
}

Événements UX

Utilisez le gestionnaire onUXEvent pour recevoir des retours en temps réel sur les interactions des utilisateurs.

Au minimum, vous devez gérer lorsque l'événement RoktUXEvent.OpenUrl est déclenché afin que vous puissiez ouvrir le lien en utilisant l'exemple ci-dessous.

info

OpenUrl & onClose

event.onClose?(event.id) est crucial pour être appelé après qu'une URL ait été ouverte et informera le RoktUXHelper d'exécuter une logique comme passer à l'offre suivante.

onUXEvent: { uxEvent in // Gérez les événements UX ici
// Gérez l'événement d'ouverture de l'URL
// Voici un exemple de la façon d'ouvrir différents types d'URL
if let event = uxEvent as? RoktUXEvent.OpenUrl,
let url = URL(string: event.url) {
switch event.type {
case .externally:
UIApplication.shared.open(url) { _ in
event.onClose?(event.id) // Ceci doit être appelé lorsque l'utilisateur est prêt pour la prochaine offre
}
default:
let safariVC = SFSafariViewController(url: url)
safariVC.modalPresentationStyle = .overFullScreen
if let rootVC = UIApplication.shared.connectedScenes
.compactMap({ ($0 as? UIWindowScene)?.keyWindow }).last?.rootViewController {
rootVC.present(safariVC, animated: true, completion: {
event.onClose?(event.id) // Ceci doit être appelé lorsque l'utilisateur est prêt pour la prochaine offre
})
}
}
}
},

Résumé

Intégrer RoktLayoutView dans votre application iOS est simple et offre un moyen flexible de gérer les vues et les expériences. En suivant les étapes décrites dans ce guide, vous pouvez ajouter RoktLayoutView à votre projet et tirer pleinement parti des fonctionnalités puissantes proposées par RoktUXHelper.


var body: some View {
RoktLayoutView(
experienceResponse: "{experience_response_json}",
location: "RoktEmbedded1",
config: roktConfig,
onUXEvent: { uxEvent in
// Gérez les événements UX ici
if let event = uxEvent as? RoktUXEvent.OpenUrl,
let url = URL(string: event.url) {
switch event.type {
case .externally:
UIApplication.shared.open(url) { _ in
event.onClose?(event.id)
}
default:
let safariVC = SFSafariViewController(url: url)
safariVC.modalPresentationStyle = .overFullScreen
if let rootVC = UIApplication.shared.connectedScenes
.compactMap({ ($0 as? UIWindowScene)?.keyWindow }).last?.rootViewController {
rootVC.present(safariVC, animated: true, completion: {
event.onClose?(event.id)
})
}
}
}
},
onPlatformEvent: { platformEvent in
// Envoyez ces événements de plateforme à l'API Rokt
}
)
}
Cet article vous a-t-il été utile ?