Hellocare iOS SDK
Cette documentation explique comment intégrer le SDK Hellocare sur un client iOS (Swift).
Il vous permet de piloter chaque étape du tunnel de connexion jusqu'à la consultation vidéo.
Pré-requis
La clé API fournie par Hellocare ainsi que le jeton de connexion utilisateur seront indispensables pour initialiser le SDK.
Si vous ne l'avez pas encore fait, référez-vous à au Guide de démarrage.
Configuration requise
Ce SDK fonctionne avec iOS 10 et plus.
Le SDK a besoin de certaines permissions pour fonctionner correctement. Ces permissions sont nécessaires au bon fonctionnement de la video et de l'audio.
NSCameraUsageDescription
NSMicrophoneUsageDescription
Installation
Le SDK Hellocare est disponible via Cocoapods
Afin d'ajouter le SDK à votre projet, il vous suffit d'ajouter à votre Podfile:
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '10.0' use_frameworks!
pod 'HellocareSDK'
Puis de lancer l'installation avec :
$ pod install
Dans le cas ou vous n'avez pas la dernière version installée, utiliser la commande suivante :
$ pod cache clean
$ pod repo update HellocareSDK
$ pod install
Si vous ne reussissez pas à mettre à jour votre version du SDK, assurez-vous que votre version n'est pas bloquée par une ancienne versino dans fichier Podfile.lock
.
La dernière version du SDK est la : 1.0.5
Initialisation
Vous devez utiliser la clé API fournie par Hellocare (test
ou live
).
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
........
HellocareSDK.setup(apiKey:String, sessionToken: String)
........
}
Les différentes étapes du tunnel d'appel sont dans l'ordre :
None -> Connecting -> Dispatching -> Joining -> Join
|
|-> Doctor missing
Démarrez le tunnel d'appel
Il faut appeler la méthode goToConnectingState() de la classe HellocareSDK.
Sans spécialité
HellocareSDK.shared.goToConnectingState()
Dans ce cas, on fait appel à un médecin généraliste.
Avec spécialité
HellocareSDK.shared.goToConnectingState(skillCode: String)
Pour récupérer la liste des code de spécialités, un appel API est nécessaire (contactez-nous pour plus d'informations).
Stopper le tunnel d'appel
Il faut appeler la méthode onCancelSessionSuccess()
du SDK:
HellocareSDK.shared.cancelSession()
L'évènenement onCancelSessionSuccess()
est remonté via le sdk lors d'une annulation avec succès.
L'évènenement onSessionError(sessionError:SessionError)
est remonté avec une erreur spécifique via le SDK lors de l'annulation si un problème a eu lieu.
Détails des différents état du SDK
None
Depuis cet état on peut faire appel qu'à l'état connecting
HellocareSDK.shared.goToConnectingState()
L'évènenement onConnectingStateSuccess(sessionUid: String)
est remonté via le sdk lors d'une connexion effectuée avec succès. L'Uid de la session est retournée dans le paramètre sessionUid
.
L'évènenement onSessionError(sessionError: SessionError)
est remonté avec une erreur spécifique via le SDK lors de la connexion si un problème a eu lieu.
CONNECTING
Depuis cet état on peut faire appel qu'à l'état dispatching
HellocareSDK.shared.goToDispatchingState()
L'évènenement onDispatchingStateSuccess()
est remonté via le sdk si un professionnel de santé est disponible pour une consultation.
L'évènenement onDoctorMissingState()
est remonté via le sdk si aucun professionnel de santé est disponible pour une consultation.
L'évènenement onNextAvailabilityFound(date: Date)
est remonté via le sdk si aucun professionnel de santé de la spécialité demandée est disponible immédiatement mais disponible dans un délais donné par la date remontée en paramètre (uniquement appelée si la spécialité est différente de celle de Médecin généraliste)
L'évènenement onSessionError(SessionError sessionError)
est remonté avec une erreur spécifique via le SDK lors de la demande de dispatch si un problème a eu lieu.
DOCTOR MISSING STATE
Depuis cet état on peut faire appel qu'à l'état cancel
car aucun professionnel de santé est disponible.
HellocareSdk.shared.cancelSession()
DISPATCHING
Depuis cet état on peut faire appel qu'à l'état joining
HellocareSDK.shared.goToJoinState()
L'évènenement onJoinStateSuccess(assignedDoctor:AssignedDoctor, awaitingTime:Double)
est remonté via le sdk en cas de succès avec les informations sur le professionnel de santé attribué pour cette consultation et une estimation du temps d'attente en minutes.
Le temps d'attente est une estimation ce qui veut dire que la consultation peut démarrée avant ou après ce temps. (Voir l'état "Join" pour avoir des informations sur le démarrage de la consultation)
JOIN
Dans cet état le SDK est en attente que le professionnel de santé assigné pour la consultation la démarre. Dans ce cas l'évènement
onVideoReadyToStart()
est remonté via le sdk.
A la réception de cet évènement, vous pouvez lancer votre vue vidéo du SDK afin de lancer la consultation.
Exemple simple d'implementation du tunnel d'appel
func startSession(){
HellocareSDK.shared.goToConnectingState()
}
func onConnectingStateSuccess() {
HellocareSDK.shared.goToDispatchState()
}
func onDispatchingStateSuccess() {
HellocareSDK.shared.goToJoinState()
}
func onJoinStateSuccess(assignedDoctor:AssignedDoctor, awaitingTime:Double) {
// réception des informations du médecin
// La séssion peut démarrée avant la fin du temps d'attente si événement onVideoReadyToStart est recu
// Appeler startVideoSession avec un VideoSessionListener pour voir la vidéo du patient duant l'attente
}
func onSessionError(sessionError:SessionError) {
// Gestions des erreurs
}
func onDoctorMissingState() {
updateOnDoctorMissingState()
}
func onVideoReadyToStart() {
//Le médecin est connecté et a démarré sa vidéo
}
func onCancelSessionSuccess() {
//Gestion de l'annulation de session
}
Consultation vidéo
Un composant graphique VideoSessionView
embarque la consultation vidéo et se charge de mettre en relation automatiquement le professionnel de santé et le patient.
Quand toutes les étapes du tunnel d'appel se sont déroulées avec succès, le SDK peut démarrer une consultation vidéo.
Vous pouvez ajouter une vue de type VideoSessionView
dans votre storyboard.
NE PAS OUBLIER DE SELECTIONNER HellocareSDK COMME MODULE DANS Interfacebuilder
Vous pouvez aussi ajouter la vue programmatiquement dans votre ViewController.
- Pour démarrer la vidéo, il suffit d'appeler la méthode de la classe VideoSessionView
startVideoSession(videoSessionListener:VideoSessionListener)
NE PAS OUBLIER LES PERMISSIONS VIDEO ET AUDIO
- Pour terminer une consultation vidéo, il suffit d'utiliser la méthode
HellocareSDK.shared.terminate()