Tratamiento de la paginación
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.
Esta guía cubre el proceso de carga y visualización de trozos de eventos de conversación a la vez.
NOTA: Hay disponible un tutorial paso a paso para crear una aplicación de chat aquí.
Si ya eres miembro de una conversación, puedes descargar fragmentos (páginas) de los eventos que se produzcan en ella.
Cargar la primera página de eventos:
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];
}];
Después de cargar el primer fragmento de eventos, obtendrá el icono referencia a la página de eventos actuales (JavaScript, iOS, Android). Este referencia le permite recuperar las siguientes páginas de eventos:
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
}];
}
Las páginas anteriores también pueden recuperarse mediante una técnica similar:
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
}];
}