LeanChat iOS ChatMince iOS | Original, traduit par l'IA

Home PDF

Voici le README.md du projet github https://github.com/lzwjava/leanchat-ios.


Licence MIT  CocoaPods  CocoaPods  Support

leanchat

App Store

LeanChat est disponible sur l’App Store. Vous pouvez visiter https://itunes.apple.com/gb/app/leanchat/id943324553 ou rechercher LeanChat sur l’App Store.

Introduction

Ce projet d’exemple montre de manière exhaustive l’application de la fonction de communication en temps réel de LeanCloud. Cependant, il contient beaucoup de code UI et d’autres fonctionnalités, ce qui le rend peu adapté à un apprentissage rapide. Si vous êtes nouveau sur LeanMessage, nous recommandons le projet LeanMessage-Demo. Une fois que vous êtes familiarisé, vous pouvez aller sur LeanCloud-Demos pour sélectionner votre peau IM préférée pour l’intégration. Pendant l’intégration, si vous rencontrez des problèmes difficiles, vous pouvez vous référer au projet LeanChat.

Structure du projet LeanChat

Retours précieux

Si vous avez des questions, n’hésitez pas à créer un issue, en indiquant ce que vous ne comprenez pas, et nous vous fournirons de l’aide dès que possible.

Téléchargement

Veuillez cliquer directement sur Download Zip sur Github comme indiqué sur l’image ci-dessous pour télécharger uniquement la dernière version. Si vous utilisez git clone, cela peut être très lent car il inclut un grand historique de commits. Lors d’un test, la différence était de 1,5M:40M.

qq20150618-2 2x

Exécution

  // LeanChat (Exemple complexe)
  cd LeanChat
  pod install --verbose  // Si vous avez la bibliothèque de dépendance AVOSCloud localement, vous pouvez ajouter l'option --no-repo-update pour accélérer le processus
  open LeanChat.workspace

  // LeanChatExample (Exemple simple)
  cd LeanChatExample
  pod install --verbose --no-repo-update
  open LeanChatExample.xcworkspace

  // LeanChatSwift (Exemple Swift)
  cd LeanChatSwift
  pod install --verbose --no-repo-update
  open LeanChatSwift.xcworkspace

  // LeanChatLib (Bibliothèque encapsulant les composants de communication LeanCloud et l'UI)
  cd LeanChatLib
  pod install --verbose --no-repo-update
  open LeanChatLib.xcworkspace

Si vous rencontrez des problèmes comme definition of 'AVUser' must be imported from module 'LeanChatLib.CDChatListVC' before it is required, vous pouvez maintenir la touche Option dans le menu Produit et cliquer sur Clean Build Folder pour effacer tous les fichiers de Build, puis recompiler. Ce problème semble être un bug lorsque Cocoapods effectue une compilation complexe. Vous pouvez voir ce Gif pour plus de détails.

Veuillez noter que, en raison de l’utilisation par défaut des certificats de production, il n’y a pas de notifications push pour les messages hors ligne pendant le développement. Cependant, les notifications push sont disponibles dans la version en ligne, que vous pouvez télécharger depuis l’App Store. Pour plus de détails, vous pouvez également vous référer à ce issue.

Vous pouvez voir trois projets, comme décrit ci-dessous.

Introduction aux sous-projets

Introduction à LeanChatLib

Il encapsule la page des conversations récentes et la page de discussion. Les projets LeanChat et LeanChatExample en dépendent. Vous pouvez l’installer comme suit,

    pod 'LeanChatLib'

La plupart du temps, vous intégrerez LeanChatLib en faisant glisser le code source dans votre projet. Dans ce cas, vous devez d’abord installer AVOSCloud.framework et AVOSCloudIM.framework. Si vous n’avez pas utilisé pod install 'AVOSCloud', pod install 'AVOSCloudIM' pour installer, vous pouvez configurer les Frameworks nécessaires selon le Guide de démarrage rapide de LeanCloud. Installez également deux autres bibliothèques dépendantes JSBadgeView et DateTools. Lors de l’exécution de pod install pour cette Démonstration, un répertoire Pods sera généré, à partir duquel vous pouvez trouver ces deux Pods. Sinon, vous pouvez rechercher en ligne. Vous pouvez également le configurer via le fichier .podspec, qui décrit quels fichiers sources doivent être intégrés et quels frameworks système doivent être introduits, etc. Ou, veuillez vous référer à ce ticket.

Comment ajouter IM en trois étapes

  1. Créez une application dans LeanCloud.
  2. Ajoutez la dépendance du pod LeanChatLib, ou faites glisser les fichiers de code LeanChatLib dans votre projet pour une personnalisation UI plus facile et un ajustement des fonctionnalités.
  3. Ajoutez le code suivant aux endroits appropriés,

À l’ouverture de l’application, initialisez et configurez l’utilisateur IM,

    [AVOSCloud setApplicationId:@"YourAppId" clientKey:@"YourAppKey"];
    [CDChatManager manager].userDelegate = [[CDUserFactory alloc] init];

Configurez une UserFactory, qui se conforme au protocole CDUserDelegate.

#import "CDUserFactory.h"

#import <LeanChatLib/LeanChatLib.h>

@interface CDUserFactory ()<CDUserDelegate>

@end


@implementation CDUserFactory

#pragma mark - CDUserDelegate
-(void)cacheUserByIds:(NSSet *)userIds block:(AVIMArrayResultBlock)block{
    block(nil,nil); // n'oubliez pas cela
}

-(id<CDUserModel>)getUserById:(NSString *)userId{
    CDUser* user=[[CDUser alloc] init];
    user.userId=userId;
    user.username=userId;
    user.avatarUrl=@"http://ac-x3o016bx.clouddn.com/86O7RAPx2BtTW5zgZTPGNwH9RZD5vNDtPm1YbIcu";
    return user;
}

@end

Ici, CDUser est l’objet Utilisateur au sein de l’application et vous pouvez mettre en œuvre le protocole CDUserModel dans votre objet Utilisateur.

CDUserModel,

@protocol CDUserModel <NSObject>

@required

-(NSString*)userId;

-(NSString*)avatarUrl;

-(NSString*)username;

@end

Appelez lors de la connexion,

        [[CDChatManager manager] openWithClientId:selfId callback: ^(BOOL succeeded, NSError *error) {
            if (error) {
                DLog(@"%@", error);
            }
            else {
               // allez au Contrôleur Principal
            }
        }];

Pour discuter avec quelqu’un,

        [[CDChatManager manager] fetchConvWithOtherId : otherId callback : ^(AVIMConversation *conversation, NSError *error) {
            if (error) {
                DLog(@"%@", error);
            }
            else {
                LCEChatRoomVC *chatRoomVC = [[LCEChatRoomVC alloc] initWithConv:conversation];
                [weakSelf.navigationController pushViewController:chatRoomVC animated:YES];
            }
        }];

Pour une discussion de groupe,

        NSMutableArray *memberIds = [NSMutableArray array];
        [memberIds addObject:groupId1];
        [memberIds addObject:groupId2];
        [memberIds addObject:[CDChatManager manager].selfId];
        [[CDChatManager manager] fetchConvWithMembers:memberIds callback: ^(AVIMConversation *conversation, NSError *error) {
            if (error) {
                DLog(@"%@", error);
            }
            else {
                LCEChatRoomVC *chatRoomVC = [[LCEChatRoomVC alloc] initWithConv:conversation];
                [weakSelf.navigationController pushViewController:chatRoomVC animated:YES];
            }
        }];

Lors de la déconnexion,

    [[CDChatManager manager] closeWithCallback: ^(BOOL succeeded, NSError *error) {

    }];

Ensuite, vous pouvez discuter comme montré dans la capture d’écran ci-dessus. Notez que nous ne recommandons actuellement pas d’utiliser la méthode pod pour importer directement LeanChatLib car certaines interfaces et fonctionnalités doivent être personnalisées par vous. Par conséquent, nous recommandons de copier le code LeanChatLib dans le projet pour une personnalisation plus facile.

LeanChatLib ChangeLog

0.2.6

Mise à jour du SDK vers 3.1.4 pour s’adapter à iOS 9

0.2.5

Utilisation de cachePolicy dans AVIMConversationQuery pour économiser le trafic et mieux supporter le hors ligne Correction d’un bug où l’appel de fetchConvWithConvid lorsque la conversation n’existe pas peut provoquer un plantage

0.2.4

Ajout de l’icône Tuzki

0.2.3

Ajout d’une vérification des paramètres pour l’interface fetchConvWithMembers:, correction d’un potentiel plantage dans la liste des conversations lorsqu’il s’agit d’une discussion individuelle mais qu’elle n’a qu’un seul membre

0.2.2

Mise à jour de la bibliothèque AVOSCloud vers 3.1.2.8

0.2.1

ChatListDelegate ajoute les interfaces configureCell: et prepareConversaion: pour une personnalisation plus complexe des conversations.

Pour les messages d’images, utilisez AVFile pour mettre en cache les images, de sorte que vos propres photos envoyées n’aient pas besoin d’être téléchargées à nouveau.

0.2.0

Ajout de commentaires, support du réenvoi des messages, affichage des messages échoués, ajout d’effets sonores et de vibrations

0.1.3

Correction d’un bug où l’application pouvait planter lors du chargement rapide des messages historiques en tirant vers le bas

0.1.2

Utilisation du cache de discussion SDK, suppression de la dépendance FMDB. Vous pouvez voir les messages historiques sur le serveur et les enregistrements de discussion historiques même après réinstallation. Suppression de la classe CDNotify.

0.1.1

Refonte

0.1.0

Version initiale

Notes de déploiement pour LeanChat

Si vous souhaitez déployer LeanChat complète, puisque l’application a une fonctionnalité d’ajout d’amis, veuillez allez dans Paramètres->Options de l’application et cochez l’option Suivi mutuel afin que lorsque l’une des parties accepte, elles puissent s’ajouter mutuellement en amis.

qq20150407-5

Guide de développement

Guide de développement du service de messagerie en temps réel

Plus d’informations

Remerciements

Merci à la grande bibliothèque open-source MessageDisplayKit par Xian-Hua Han.


Back 2025.04.02 Donate