Documents OpenIM • Serveur OpenIM • openim-sdk-ios • openim-sdk-core
OpenIM iOS Demo est un ensemble de composants d'interface utilisateur implémentés sur la base du SDK Open-IM, qui comprend des fonctions telles que la conversation, le chat, la chaîne de relations, le groupe, etc. Sur la base des composants d'interface utilisateur, vous pouvez rapidement créer votre propre logique métier.
Exigences de l'environnement de développement
Xcode 15 et supérieur
La cible de déploiement minimale est iOS 13.0.
Cloner Git :
https :/ / github . com / OpenIMSDK / Open - IM - iOS - Demo . git
Exécutez la commande suivante sur le terminal pour installer la bibliothèque dépendante.
cd Open - IM - iOS - Demo / Example
pod install
Si l'installation échoue, exécutez la commande suivante pour mettre à jour la liste des entrepôts CocoaPods locaux.
pod repo update
Compiler et exécuter : entrez dans le dossier Open-IM-iOS-Demo/Example, ouvrez OpenIMSDKUIKit.xcworkspace pour compiler et exécuter.
Découvrez votre propre serveur 6.1 Si vous avez déployé OpenIM Server vous-même, vous pouvez modifier le serveur dans le fichier AppDelegate.swift. L'adresse est l'adresse du serveur créée par vous-même ;
6.2 Après avoir téléchargé l'application, cliquez sur « Bienvenue dans OpenIM » sur la page [Connexion] pour accéder à la page de configuration, effectuez les réglages pertinents, enregistrez et redémarrez pour utiliser.
Commencez le développement ! ?
Les logiciels de chat couramment utilisés sont composés de plusieurs interfaces de base telles que la liste de sessions, la fenêtre de discussion, la liste d'amis, les appels audio et vidéo, etc. Reportez-vous aux étapes suivantes, vous n'avez besoin que de quelques lignes de code pour créer rapidement ces interfaces d'interface utilisateur dans le projet.
Étape 1 : Modifiez l'adresse IP de votre propre serveur :
AppDelegate.swift
// Default IP address to be used
let defaultHost = "" ; // Replace with the desired host
Étape 2 : Connectez-vous
- Connectez-vous à votre propre serveur d'entreprise pour obtenir l'ID utilisateur et le jeton ;
- Utilisez 1. pour obtenir l'ID utilisateur et le jeton pour vous connecter au serveur de messagerie instantanée ;
// 1 : Log in to your own business server to obtain userID and token ;
static func loginDemo ( phone : String , pwd : String , completionHandler : @escaping ( ( _ errMsg : String? ) -> Void ) ) {
let body = JsonTool . toJson ( fromObject : Request . init ( phoneNumber : phone , pwd : pwd ) ) . data ( using : . utf8 )
var req = try! URLRequest . init ( url : "your login api" , method : . post )
req . httpBody = body
Alamofire . request ( req ) . responseString { ( response : DataResponse < String > ) in
switch response . result {
case . success ( let result ) :
if let res = JsonTool . fromJson ( result , toClass : Response . self ) {
if res . errCode == 0 {
completionHandler ( nil )
// log in to the IM server
loginIM ( uid : res . data . userID , token : res . data . token , completionHandler : completionHandler )
} else {
completionHandler ( res . errMsg )
}
} else {
let err = JsonTool . fromJson ( result , toClass : DemoError . self )
completionHandler ( err? . errMsg )
}
case . failure ( let err ) :
completionHandler ( err . localizedDescription )
}
}
}
static func loginIM ( uid : String , token : String , completionHandler : @escaping ( ( _ errMsg : String? ) -> Void ) ) {
IMController . shared . login ( uid : uid , token : token ) { resp in
print ( "login onSuccess ( String(describing: resp))" )
completionHandler ( nil )
} onFail : { ( code : Int , msg : String? ) in
let reason = "login onFail: code ( code), reason ( String(describing: msg))"
completionHandler ( reason )
}
}
Étape 3 : Construire une liste de conversations, une fenêtre de discussion, une interface de carnet d'adresses, des paramètres :
// session list
let chat = ChatListViewController ( )
// chat window
let message = MessageListViewController ( )
// address book
let contactVC = ContactsViewController ( )
// set up
let mineNav = MineViewController ( )
Nous voulons que tout le monde s'implique dans notre communauté et contribue au code, nous offrons des cadeaux et des récompenses, et nous vous invitons à nous rejoindre tous les jeudis soirs.
Notre conférence se déroule dans OpenIM Slack, vous pouvez alors rechercher le pipeline Open-IM-Server pour vous joindre
Nous prenons des notes de chaque réunion bihebdomadaire dans les discussions GitHub. Nos notes de réunion historiques, ainsi que les rediffusions des réunions sont disponibles sur Google Docs ?.
Consultez notre page d'études de cas d'utilisateurs pour une liste des utilisateurs du projet. N'hésitez pas à laisser un commentaire et à partager votre cas d'utilisation.
Ce référentiel est sous licence GNU Affero General Public License version 3 (AGPL-3.0) et est soumis aux conditions supplémentaires suivantes. Veuillez vous référer à ici pour plus de détails.