2017-10-11 3 views
2

Dans Applozic/ionique app intégrée, je dois obtenir dernier message et le temps de conversation pour un utilisateur ou d'un groupeApplozic ionique obtenir dernier message pour l'utilisateur

J'ai lu la documentation pour Applozic - intégration ionique, mais ne l'ai pas trouvé un solution pour ci-dessus. Il mentionne seulement au-dessous

//Get Total Unread Count 
 
applozic.getUnreadCount(function(response){ 
 
    var count = response; 
 
    }, 
 
    function(error){alert(error) 
 
    }); 
 
    
 
//Get Unread count per user 
 
    var userId = 'USER_ID'; //pass UserId with which unread count 
 
    applozic.getUnreadCountForUser(userId,function(response){ 
 
    var count = response; 
 
    }, 
 
    function(error){alert(error) 
 
    }); 
 
    
 
//Get unread count per group 
 
    var groupId = 'GROUP_ID'; // pass groupId in which unreadcount required 
 

 
    applozic.getUnreadCountForGroup(groupId,function(response){ 
 
     var count = response; 
 
    }, 
 
    function(error){ 
 
    });

+0

Qu'est-ce que l'URL 'Api'? – Sampath

+0

@Sampath J'utilise ce lien pour la documentation: https://www.applozic.com/docs/ionic-chat-plugin.html#unread-count-for-user – Thakur

Répondre

5

Actuellement il n'y a pas de méthode qui fournit le dernier message pour un utilisateur ou d'un groupe. Mais vous pouvez obtenir les derniers messages pour tous les contacts et le groupe avec lesquels l'utilisateur a initié un chat ou obtenir tous les messages pour un contact ou un groupe particulier. Pour cela, il existe une fonction dans le plugin - getConversationList().

>> Obtenir la liste des conversations pour un contact particulier/groupe:

Suivez les étapes ci-dessous pour obtenir les messages d'un contact/groupe particualar:

1) Créer un objet messageListModel:

var messageListModel = { 
    'startTime' : null, //start time 
'endTime' : null, //end time 
'contactId' : <your-contact-id>, //(this is string) pass contact id to get the message list for that contact 
'searchString' : null, // pass the search string to get the latest messages that match the search string 
'channelKey' : <your-group-id>, //(this is number) pass the channel key to get the message list for that channel 
'conversationId' : null, 
'isScroll' : false, //is scroll will be false if you want to get all list of chats 
'isSkipRead' : false, 
    }; 

2) Faire passer cet objet à la fonction getConversationList():

applozic.getConversationList(messageListModel, (conversationList)=> { 
console.log(JSON.stringify(conversationList)) 
},()=>{}); 

Vous recevriez une conversationList dans la fonction de rappel onSuccess.

3) L'objet de conversation a trois objets:

a) un message - un message pour un contact particulier/groupe

b) Contact - serait nulle si le message est du groupe

c Canal - serait null si le message est pour un contact

Donc dans votre cas, vous recevriez une liste de conversations avec le même contact/canal que vous avez passé dans l'objet messageListModel. La dernière conversation dans la liste est ce que vous cherchez.

>>> Obtenir Derniers messages pour tous les contacts/groupe:

Vous pouvez également obtenir les derniers messages pour tous les contacts/groupes que l'utilisateur a inititated le chat avec. Tout comme WhatsApp écran d'accueil.

1) Créer un objet messageListModel:

var messageListModel = { 
    'startTime' : null, //start time 
'endTime' : null, //end time 
'contactId' : null, //pass contact id to get the message list for that contact 
'searchString' : null, // pass the search string to get the latest messages that match the search string 
'channelKey' : null, // pass the channel key to get the message list for that channel 
'conversationId' : null, 
'isScroll' : false, //is scroll will be false if you want to get all list of chats 
'isSkipRead' : false, 
    }; 

2) Transmettez cet objet à la fonction getConversationList():

applozic.getConversationList(messageListModel, (conversationList)=> { 
console.log(JSON.stringify(conversationList)) 
},()=>{}); 

vous recevriez un conversationList dans la fonction de rappel onSuccess.

3) L'objet de conversation a trois objets:

a) Message - dernier message pour le contact/groupe

b) Contact - serait nulle si le message est du groupe

c) Canal - serait null si le message est pour un contact

Vous pourriez trouver pour le contact/canal dans cette liste et obtenir le message pour cela. La liste Conversation est triée dans l'ordre décroissant de la création d'un message. Tout comme ce que vous voyez dans l'écran d'accueil de WhatsApp. Les derniers messages sont en haut. Donc, si votre contact ne figure pas dans les 60 premières conversations, vous devez passer à nouveau l'appel, mais cette fois-ci en passant le dernier message createdAtTime dans l'objet modèle de liste de messages comme suit:

var messageListModel = { 
     'startTime' : null, //start time 
    'endTime' : null, //end time 
    'contactId' : null, //pass contact id to get the message list for that contact 
    'searchString' : null, // pass the search string to get the latest messages that match the search string 
    'channelKey' : null, // pass the channel key to get the message list for that channel 
    'conversationId' : null, 
    'isScroll' : false, //is scroll will be false if you want to get all list of chats 
    'isSkipRead' : false, 
    'createdAtTime' : conversationList[conversationList.length - 1].message.createdAtTime; 
     }; 

Comment obtenir le temps du message:

pour obtenir le temps du message que vous pouvez faire:

conversationList[index].message.createdAtTime; 

Voici toutes les propriétés des objets utilisés ci-dessus pour votre commodité.

Propriétés de l'objet Conversation:

interface Conversation{ 
    message : Message; 
    contact : Contact; 
    channel : Channel; 
} 

Propriétés de l'objet du message:

interface Message{ 
     createdAtTime : number; 
     to : string; 
     message : string; 
     key : string; 
     deviceKey : string; 
     userKey : string; 
     emailIds : string; 
     shared : boolean; 
     sent : boolean; 
     delivered : boolean; 
     type : number; 
     storeOnDevice : boolean; 
     contactIds : string; 
     groupId : number; 
     scheduledAt : number; 
     source : number; 
     timeToLive : number; 
     sentToServer : boolean; 
     fileMetaKey : string; 
     filePaths : string[]; 
     pairedMessageKey : string; 
     sentMessageTimeAtServer : number; 
     canceled : boolean; 
     clientGroupId : string; 
     messageId : number; 
     read : boolean; 
     attDownloadInProgress : boolean; 
     applicationId : string; 
     conversationId : number; 
     topicId : string; 
     connected : boolean; 
     contentType : number; 
     status : number; 
     hidden : boolean; 
     replyMessage : number; 
     fileMeta : FileMeta; 
     metadata : Map<string,string>; 
    } 

    interface FileMeta{ 
    key : string; 
    userKey : string; 
    blobKey : string; 
    name : string; 
    url : string; 
    size : number; 
    contentType : string; 
    thumbnailUrl : string; 
    createdAtTime : number; 
} 

Propriétés d'un objet contact:

interface Contact{ 
    firstName : string; 
    middleName : string; 
    lastName : string; 
    emailIdLists : string[]; 
    contactNumberLists : string[]; 
    phoneNumbers : Map<string, string>; 
    contactNumber : string; 
    formattedContactNumber : string; 
    contactId : number; 
    fullName : string; 
    userId : string; 
    imageURL : string; 
    localImageUrl : string; 
    emailId : string; 
    applicationId : string; 
    connected : boolean; 
    lastSeenAtTime : number; 
    checked : boolean; 
    unreadCount : number; 
    blocked : boolean; 
    blockedBy : boolean; 
    status : string; 
    userTypeId : number; 
    contactType : number; 
    deletedAtTime : number; 
    latestMessageAtTime : number; 
} 

propriétés d'un objet Channel:

interface Channel{ 
    key : number; 
    parentKey : number; 
    clientGroupId : string; 
    name : string; 
    adminKey : string; 
    type : number; 
    unreadCount : number; 
    userCount : number; 
    subGroupCount : number; 
    imageUrl : string; 
    notificationAfterTime : number; 
    localImageUri : string; 
    contacts : Contact[]; 
} 
+0

Les fonctions ci-dessus ne sont pas mentionnées dans la documentation ionique par AppLozic. Merci pour cette information, cela va vraiment aider et finalement je voulais personnaliser mon écran comme ça. J'ai essayé >> Obtenir la liste de conversation pour le contact/groupe particulier: en mentionnant contactId: '[email protected]' et gardé channelKey: null - j'obtiens l'erreur "Une certaine erreur tout en récupérant des messages". Quand j'essaie >>> Obtenir les derniers messages pour tous les contacts/groupe: en utilisant var messageListModel comme vous l'avez mentionné ci-dessus, l'application se termine. Pourquoi cela peut-il arriver? – Thakur

+0

y at-il un lien pour la documentation détaillée de ionic/applozic, comme vous le savez, ces fonctions ne sont pas mentionnées à applozic.com/docs/ionic-chat-plugin.html – Thakur

+0

Pouvez-vous envoyer des messages à partir des journaux une erreur lorsque l'application sort –