Gestion de la pagination
Product deprecation notice
Effective April 30th, 2026, Vonage In-App Messaging will no longer be available. Access for new users will be closed, and the service will be discontinued for all existing users.
If you have any questions regarding this product’s discontinuation, please contact your account manager or our support team.
Ce guide couvre le processus de chargement et d'affichage de morceaux d'événements de conversation à la fois.
NOTE: A step-by-step tutorial to build a chat application is available here.
Si vous êtes déjà membre d'une conversation, vous pouvez télécharger des morceaux (pages) d'événements existant dans cette conversation.
Chargement de la première page d'événements :
function listEvents(events_page){
events_page.items.forEach(event => {
handleEvent(event);
})
}
conversation.getEvents({ page_size: 100, order: 'asc' })
.then((events_page) => {
listEvents(events_page);
})
.catch((error) =>{
console.log('Error: Unable to load conversation events ',error);
});
val conversationEventsListener = object : NexmoRequestListener<NexmoEventsPage> {
override fun onSuccess(nexmoEventsPage: NexmoEventsPage?) {
nexmoEventsPage?.pageResponse?.data?.let {
val events = nexmoEventsPage?.data
}
}
override fun onError(apiError: NexmoApiError) {
Log.d("TAG", "Error: Unable to load conversation events ${apiError.message}")
}
}
conversation?.getEvents(100, NexmoPageOrder.NexmoMPageOrderAsc, null, conversationEventsListener)
NexmoRequestListener<NexmoEventsPage> conversationEventsListener = new NexmoRequestListener<NexmoEventsPage>() {
@Override
public void onSuccess(@Nullable NexmoEventsPage eventsPage) {
Collection<NexmoEvent> events = eventsPage.getData();
}
@Override
public void onError(@NonNull NexmoApiError apiError) {
Log.d("TAG", "Error: Unable to load conversation events %s", apiError.getMessage());
}
};
conversation.getEvents(100, NexmoPageOrder.NexmoMPageOrderAsc, null, conversationEventsListener);
conversation.getEventsPage(withSize: 10, order: .asc) { (error, page) in
if let error = error {
print(error)
return
}
self.events = page?.events
}
[self.conversation getEventsPageWithSize:10 order:NXMPageOrderAsc
completionHandler:^(NSError * _Nullable error, NXMEventsPage * _Nullable events) {
self.events = [NSMutableArray arrayWithArray:events.events];
}];
Après avoir chargé le premier groupe d'événements, vous obtiendrez le message suivant référence à la page des événements en cours (JavaScript, iOS, Android). Cette référence vous permet de récupérer les pages des événements suivants :
if (events_page.hasNext()){
listEvents(events_page.getNext());
}
if(nexmoEventsPage.isNextPageExist) {
nexmoEventsPage.getNext(conversationEventsListener)
}
if(eventsPage.isNextPageExist()) {
eventsPage.getNext(conversationEventsListener);
}
if eventsPage.hasNextPage() {
eventsPage.nextPage({ (error, page) in
// handle page events
})
}
if (eventsPage.hasNextPage) {
[eventsPage nextPage:^(NSError * _Nullable error, NXMEventsPage * _Nullable page) {
// handle page events
}];
}
Les pages précédentes peuvent également être récupérées à l'aide d'une technique similaire :
if (events_page.hasPrev()){
listEvents(events_page.getPrev());
}
if(nexmoEventsPage.isPrevPageExist) {
nexmoEventsPage.getPrev(conversationEventsListener)
}
if(eventsPage.isPrevPageExist()) {
eventsPage.getPrev(conversationEventsListener);
}
if eventsPage.hasPreviousPage() {
eventsPage.previousPage({ (error, page) in
// handle page events
})
}
if (eventsPage.hasPreviousPage) {
[eventsPage previousPage:^(NSError * _Nullable error, NXMEventsPage * _Nullable page) {
// handle page events
}];
}