Notas de publicació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.
5.0.1 - 2022-09-29
Fijo
- Socket handshake config borrado al cerrar la sesión
5.0.0 - 2022-09-01
Añadido
- Compatibilidad con XCFrameworks para M1
4.3.2 - 2022-07-01
Fijar
- Corrección de la transición de silencio a silencio en el objeto multimedia
- Corrección del análisis sintáctico de eventos para
NXMCustomEvent.customType
4.3.1 - 2022-05-09
Fijar
- Fijar
[NXMConversation sendMessage:message completionHandler:handler]paraNXMMessageTypeImage,NXMMessageTypeAudio,NXMMessageTypeVideoyNXMMessageTypeFiletipos de mensajes.
4.3.0 - 2022-04-28
Añadido
pushNotificationTTLpropiedad añadida aNXMClientConfigpara establecer el TTL de las notificaciones push.[NXMConversation sendMarkDeliveredMessage:message completionHandler:handler]para enviar recibos de entrega.[NXMConversation sendMarkSeenMessage]ahora admite el estado visto para todos los mensajes.NXMMessageStatusTypeSubmitted,NXMMessageStatusTypeRejected,NXMMessageStatusTypeUndeliverableestados añadidos aNXMMessageStatusEvent
4.2.1 - 2022-04-06
Fijo
[NXMClient uploadAttachmentWithType:name:data:completionHandler:]método para cargar archivos adjuntos devuelve con datos de imagen
4.2.0 - 2022-03-24
Añadido
- Apoyo a
call:transferenNXMCall [NXMCallDelegate call:didTransfer:event:]para recibir un nuevo evento de transferencia de llamada cuando la llamada se transfiere a una nueva conversación.
Mejoras
- Dependencia de WebRTC actualizada a la versión
84.0.22.
4.1.0 - 2022-02-25
Añadido
[NXMClient getDeviceId]para recuperar el identificador del dispositivo.
4.0.6 - 2022-02-15
Fijo
- Corregir las advertencias de DSYM
4.0.5 - 2022-02-15
Añadido
- Soporte Bitcode
4.0.4 - 2022-01-14
Fijo
- La cola de procesamiento de eventos de llamadas entrantes pasa por defecto a no suspendida
4.0.3 - 2021-12-13
Fijo
- Cabecera de paraguas.
4.0.2 - 2021-12-07
Fijo
- Dependencias de CocoaPods.
4.0.0 - 2021-12-06
Añadido
[NXMConversation sendMessage:completionHandler:]para enviarNXMMessage.[NXMClient uploadAttachmentWithType:name:data:completionHandler:]para cargar archivos adjuntos.NXMMessagerepresenta un mensaje a enviar.NXMMessageTypepara mensajes de tipotext,image,audio,video,file,template,vcardycustom.NXMEventTypeMemberMessageStatusun nuevoNXMEventTypecaso, representa un evento de estado de mensaje de miembro que puede recibirse en unNXMConversation.
Mejoras
- Dependencia de WebRTC actualizada a la versión
84.0.0. - Aplicar la dirección para
NXMCallMemberStatusdurante las llamadas.
Cambiado
NXMDirectionTypeha pasado a llamarseNXMChannelType.
Obsoleto
[NXMConversation sendText:completionHandler:]método.[NXMConversation sendAttachmentWithType:name:data:completionHandler:]método.
3.3.0 - 2021-11-22
Añadido
NXMClientConfig'sapiPinningywebsocketPinningcampos opcionales para activar HTTP y web-socket SSL pinning.[NXMPinningConfig fromPublicKeys:]para crear una configuración de pinning basada en clave pública.NXMConnectionStatusReasonSSLPinningErrorque describe la actualización de una conexión de cliente debido a un error de anclaje SSL.
Cambiado
- Versión mínima de iOS compatible (
IPHONEOS_DEPLOYMENT_TARGET) pasado a10.3.
3.2.1 - 2021-11-08
Fijo
- Almacena los eventos mientras se descarga la conversación para evitar que se pierdan
3.2.0 - 2021-10-19
Añadido
NXMClientConfig.autoMediaReofferpara permitir la reconexión automática de los medios cuando cambien las interfaces de red.[NXMClientConfig description]para una rápidaNXMClientConfig's instance description.NXMMediaConnectionStatusenumerar.[NXMConversationDelegate conversation:onMediaConnectionStateChange:legId:]para recibir la notificación de cambio de estado de la conexión multimedia.[NXMConversation reconnectMedia]para activar una reconexión de medios.[NXMClient reconnectCallWithConversationId:andLegId:completionHandler:]para volver a conectar una llamada dado un identificador de conversación y un identificador de tramo.NXMCall.conversationpara obtener la conversación asociada a una llamada.
Obsoleto
[NXMClientConfig initWithApiUrl:websocketUrl:ipsUrl:].[NXMClientConfig initWithApiUrl:websocketUrl:ipsUrl:iceServerUrls:].[NXMClientConfig initWithApiUrl:websocketUrl:ipsUrl:useFirstIceCandidate:].[NXMClientConfig initWithApiUrl:websocketUrl:ipsUrl:iceServerUrls:useFirstIceCandidate].
3.1.0 - 2021-09-06
Añadido
[NXMClient inAppCallWithCallee:completionHandler:]para realizar llamadas dentro de la aplicación.[NXMClient serverCallWithCallee:customData:completionHandler:]para realizar llamadas al servidor, especificando opcionalmentecustomData.
Mejoras
- Llamadas a la API interna optimizadas para la creación de conversaciones.
Obsoleto
[NXMClient call:callHandler:completionHandler:]método.NXMCallHandlerenumerar.[NXMLogger getLogFileNames]método.
3.0.1 - 2021-07-12
Fijo
- Envío de DTMF durante las llamadas.
- Terminación del medio precalentado.
Cambiado
NXMMemberEvent'smembersustituido pormemberId.
3.0.0 - 2021-07-01
Añadido
- Añadido
NXMMemberSummarydevuelto por[NXMConversation getMembersPageWithPageSize:order:completion:](paginado), que representa un subconjunto de la información de los miembros. - Añadido
NXMMemberEvent'sinvitedByque representa el nombre del invocador, si existe. - Añadido
NXMEventEmbeddedInfoa todos los eventos devueltos porNXMEvent'sembeddedInfoy que contiene elNXMUservinculada al acontecimiento. - Añadido
[NXMConversation getMemberWithMemberUuid:completion:]devolviendo el miembro dado su identificador.
Mejoras
- Permitir 1K miembros en una conversación.
- Mejorado
callServertiempo de preparación precalentando la pierna. - Medios desactivados tras evento de cuelgue de RTC.
- Corregido el manejo de eventos de escritura de texto.
Cambios de última hora
- Eliminado
NXMCallMembersustituido porNXMMember. - Eliminado
NXMCallMember'sstatus, se trasladó a[NXMCall callStatusForMember:member:]. - Eliminado
[NXMCallMember mute:]convertido en[NXMMember enableMute]y[NXMMember disableMute]. - Eliminado
NXMConversation'sallMembers(sustituido por[NXMConversation getMembersPageWithPageSize:order:completion:](paginado)). - Eliminado
[NXMConversationUpdateDelegate conversation:didUpdateMember:withType:]sustituido por[NXMConversationDelegate conversation:didReceiveMemberEvent:]con los siguientes estados posibles:NXMMemberStateInvited,NXMMemberStateJoinedyNXMMemberStateLeft. Puede suscribirse utilizandoNXMConversation'sdelegate. - Renombrado
NXMCall'sotherCallMembersaallMembers. - Renombrado
NXMCall'smyCallMemberamyMember. - En
legsdebe incluirse enaclcaminos enJWTcreación de fichas.
"acl": {
"paths": {
...,
"/*/legs/**": {}
}
}
2.5.0 - 2020-11-23
Cambiado
- Renombrado
NXMCallMemberStatusCanceledaNXMCallMemberStatusCancelled. - Renombrado
NXMLegStatusCanceledaNXMLegStatusCancelled.
Mejoras
- Notificado con
NXMCallMemberStatusCancelledenNXMCallDelegatepara colgar la llamada.
2.4.0 - 2020-09-24
Añadido
- Exponer la razón
NXMConnectionStatusReasonTokenExpiredsobre el estado de la conexiónNXMConnectionStatusDisconnectedpara laNXMClientDelegate.
2.3.0 - 2020-08-17
Añadido
[NXMClientConfig AMS]método estático.
Fijo
- Análisis de eventos personalizados.
2.2.2 - 2020-07-20
Fijo
- Sincronización de eventos tras la desconexión del socket.
2.2.1 - 2020-07-06
Fijo
- Error de llamada al servidor notificado por
NXMCallDelegateal finalizar la llamada.
Mejoras
- Mejora de la gestión de los eventos de llamada.
- Mejora de la gestión del vencimiento de las conversaciones.
2.2.0 - 2020-04-22
Añadido
- Añadido
isConnectedparaNXMClientpara mostrar el estado actual de la conexión.
[NXNClient.shared isConnected]
Fijo
- Evento API
client_refmanejo.
2.1.10 - 2020-04-16
Mejoras
- Mejora de la recopilación de candidatos a la CIE única.
2.1.9 - 2020-04-14
Fijo
NXMClientConfigimplementaciones de inicializadores de conveniencia.
2.1.8 - 2020-04-02
Añadido
- Añadir
useFirstIceCandidateparámetros aNXMClientConfig
NXMClientConfig *config = [[NXMClientConfig alloc] initWithApiUrl:restUrl
websocketUrl:wsUrl
ipsUrl:ipsUrl
useFirstIceCandidate:NO];
2.1.5 - 2020-03-18
Mejoras
- Formato de registro de dispositivos actualizado para entornos de producción.
2.1.1 - 2020-03-05
Añadido
NXMClient'sgetConversationsPageWithSize:order:filter:completionHandler:para obtener conversaciones con paginación.
Obsoleto
NXMClient'sgetConversationsPageWithSize:order:completionHandler:para obtener conversaciones con paginación.
Mejoras
- El Client SDK ya está integrado en Xcode 11.
2.1.0 - 2020-01-31
Añadido
NXMPushPayloadpara notificaciones push personalizadas.
if (NXNClient.shared isNexmoPushWithUserInfo:pushInfo]){
NXMPushPayload *pushPayload = [myNXNClient processNexmoPushPayload:pushInfo];
if (!pushPayload){
// "Not a Nexmo push!!"
return;
};
if (pushPayload.template == NXMPushTemplateCustom) {
// Got custom push
pushPayload.customData // your customData
}
}
2.0.0 - 2020-01-15
Añadido
NXMHelpercondescriptionForEventType:método.NXMConversation'sgetEvents:sustituido porgetEventsPage:,getEventsPageWithSize:order:completionHandler:,getEventsPageWithSize:order:eventType:completionHandler:.
[myNXMConversation getEventsPagePageWithSize:15
order:NXMPageOrderDesc
eventType:nil
completionHandler:^(NSError * _Nullable error, NXMEventsPage * _Nullable page) {
if (error || !page) {
// handle error...
return;
}
// use page...
}];
NXMConversationsPage'snextPage:ypreviousPage:ahora no son nulos.
Fijo
- Llamando a
conversation.getEventsdevuelve unNXMMemberEventcon el campomemberajustado anil.
1.2.3 - 2019-12-17
Fijo
conversation.getEventsdevolvió algunosNXMEvents que contengan un nilfromMember- Descriptivo añadido
userInfoparaNXMErrors.
1.2.2 - 2019-12-12
Fijo
- Añadido soporte para DTLS en WebRTC.
didReceiveCallydidReceiveConversationser llamado una sola vez para la misma llamada o conversación.- Se ha añadido la opción de activar la notificación push con un solo
pushKitouserNotificationsimbólico. - Arreglo para
NXMClientConfigURL de la región. - Al iniciar sesión con un usuario no válido, devuelve
NXMConnectionStatusReasonUserNotFound. - Se han añadido arquitecturas de compilación:
armv7yarmv7s.
1.2.1 - 2019-12-05
Añadido
Configuración del servidor ICE:
NXMClientConfig *config = [[NXMClientConfig alloc] initWithApiUrl:restUrl
websocketUrl:wsUrl
ipsUrl:ipsUrl
iceServerUrls:iceUrls];
[NXMClient setConfiguration:config];
Esta configuración es opcional y se establecerá un valor por defecto si no se especifica.
Nota: setConfiguration antes de acceder a NXMClient.shared.
Fijo
Corregido nil valores para fromMember para NXMConversation eventos.
1.2.0 - 2019-12-03
Añadido
NXMClient's getConversationsPageWithSize:order:completionHandler: para obtener conversaciones con paginación.
NXMConversationsPageque representa la página recuperada, proporciona los siguientes métodos de instancia:
hasNextPage/hasPreviousPagepara comprobar si es posible avanzar/retroceder páginas ynextPage:/previousPage:para recuperar de forma asíncrona la página siguiente/anterior.
Cambiado
NXMClient's getConversationWithUUid:completionHandler: (ahora llamado getConversationWithUuid:completionHandler:).
1.1.1 - 2019-11-21
Añadido
NXMClientConfig para cambiar la configuración del centro de datos. Cómo utilizarlo:
[NXMClient setConfiguration:NXMClientConfig.DC];
NXMClient setConfiguration es opcional, la configuración se establecerá en un valor por defecto.
Nota: debe llamar a setConfiguration antes de utilizar NXMClient.shared.
1.1.0 - 2019-11-14
Fijo
- Compatibilidad con notificaciones push de iOS 13.
- Iniciar la estabilidad de la llamada al servidor.
- Recepción de un evento DTMF en llamada y conversación.
Añadido
NXMConversationDelegate método de recepción de eventos DTMF:
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveDTMFEvent:(nullable NXMDTMFEvent *)event;
Cambiado
NXMClient - el método de activación de notificaciones push del cliente ha cambiado.
param pushKitToken - sólo para push VoIP (llamadas entrantes).
param userNotificationToken - todos los tipos de empuje:
- (void)enablePushNotificationsWithPushKitToken:(nullable NSData *)pushKitToken
userNotificationToken:(nullable NSData *)userNotificationToken
isSandbox:(BOOL)isSandbox
completionHandler:(void(^_Nullable)(NSError * _Nullable error))completionHandler;
1.0.0 - 2019-09-05
Fijo
NexmoClientcuando se desconecta devuelve callback de error para toda la función.CallMembercalculado por el estado actual del tramo.CallMemberadmite los estados fallido, ocupado, tiempo de espera y cancelado.- Apoya a los miembros invitados.
Conversationtiene métodos multimedia.NexmoClientes ahora singleton.- Método de llamada cambiado a cadena en lugar de array.
NexmoClientMétodos delegados renombrados.
Añadido
- Medios de conversación añadidos:
NXMConversation myConversation;
[myConversation enableMedia]; // my media will be enabled
[myConversation disableMedia]; // my media will be disabled
- Añadido miembro invitado:
NXMConversation myConversation;
[myConversation inviteMemberWithUsername:@"someUsername"
completion:myCompletionBlock];
- Añadido el Estado miembro iniciador:
NXMMember *member = someMember;
NSDictionary<NSValue *, NXMInitiator *> *initiators = member.initiators;
NXMInitiator leftStateInitiator = initiators[NXMMemberStateLeft];
leftStateInitiator.isSystem;
leftStateInitiator.userId;
leftStateInitiator.memberId;
leftStateInitiator.time;
- Añadido
NXMConversationUpdateDelegatepara notificar las actualizaciones de los miembros, como los medios de comunicación, la pierna y el estado. - Añadido
updatesDelegatepropiedad aNXMConversation:
@property (nonatomic, weak, nullable) id <NXMConversationUpdateDelegate> updatesDelegate;
Ejemplo:
@interface MyClass() <NXMConversationUpdateDelegate>
@implementation MyClass
- (void)setConversation:(NXMConversation *conversation) {
conversation.updatesDelegate(self); // register to conversation updatesDelegate
}
- (void)conversation:(nonnull NXMConversation *)conversation didUpdateMember:(nonnull NXMMember *)member withType:(NXMMemberUpdateType)type {
if (type == NXMMemberUpdateTypeState) {
// the member state changed
}
if (type == NXMMemberUpdateTypeMedia) {
// the member media changed
}
}
@end
Cambiado
NXMClientes ahora un singleton:
NXMClient.shared // the shared instance of NXMClient
- Renombrado:
@property (nonatomic, readonly, nullable, getter=getToken) NSString *authToken; // was token
// was - (void)login;
- (void)loginWithAuthToken:(NSString *)authToken;
// was - (void)refreshAuthToken:(nonnull NSString *)authToken;
- (void)updateAuthToken:(nonnull NSString *)authToken;
// was callees array
- (void)call:(nonnull NSString *)callee
callHandler:(NXMCallHandler)callHandler
delegate:(nullable id<NXMCallDelegate>)delegate
completion:(void(^_Nullable)(NSError * _Nullable error, NXMCall * _Nullable call))completion;
completionHandler:(void(^_Nullable)(NSError * _Nullable error, NXMCall * _Nullable call))completionHandler;
NXMClientDelegaterenombrado:
@protocol NXMClientDelegate <NSObject>
// was - (void)connectionStatusChanged:(NXMConnectionStatus)status reason:(NXMConnectionStatusReason)reason;
- (void)client:(nonnull NXMClient *)client didChangeConnectionStatus:(NXMConnectionStatus)status reason:(NXMConnectionStatusReason)reason;
// was - (void)incomingCall:(nonnull NXMCall *)call;
- (void)client:(nonnull NXMClient *)client didReceiveCall:(nonnull NXMCall *)call;
// was - (void)incomingConversation:(nonnull NXMConversation *)conversation;
- (void)client:(nonnull NXMClient *)client didReceiveConversation:(nonnull NXMConversation *)conversation;
@end
NXMConversationotherMembersha pasado a llamarseallMembers:
NXMConversation myConversation = someConversation;
NSArray<NXMMember *> * allMembers = myConversation.allMembers // return the all conversation members
- (void)joinMemberWithUsername:(nonnull NSString *)username // username instead of userId
NXMConversationDelegatemétodos renombrados:
// was - (void)customEvent:(nonnull NXMCustomEvent *)customEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveCustomEvent:(nonnull NXMCustomEvent *)event;
// was - (void)textEvent:(nonnull NXMMessageEvent *)textEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveTextEvent:(nonnull NXMTextEvent *)event;
// was - (void)attachmentEvent:(nonnull NXMMessageEvent *)attachmentEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveImageEvent:(nonnull NXMImageEvent *)event;
// - (void)messageStatusEvent:(nonnull NXMMessageStatusEvent *)messageStatusEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveMessageStatusEvent:(nonnull NXMMessageStatusEvent *)event;
// was - (void)typingEvent:(nonnull NXMTextTypingEvent *)typingEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveTypingEvent:(nonnull NXMTextTypingEvent *)event;
// was - (void)memberEvent:(nonnull NXMMemberEvent *)memberEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveMemberEvent:(nonnull NXMMemberEvent *)event;
// was - (void)legStatusEvent:(nonnull NXMLegStatusEvent *)legStatusEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveLegStatusEvent:(nonnull NXMLegStatusEvent *)event;
// was - (void)mediaEvent:(nonnull NXMEvent *)mediaEvent;
- (void)conversation:(nonnull NXMConversation *)conversation didReceiveMediaEvent:(nonnull NXMMediaEvent *)event;
Utilice
usernameen lugar deuserId.NXMCallDelegaterenombrado:
// was - (void)statusChanged:(nonnull NXMCallMember *)callMember;
- (void)didUpdate:(nonnull NXMCallMember *)callMember status:(NXMCallMemberStatus)status;
- (void)didUpdate:(nonnull NXMCallMember *)callMember muted:(BOOL)muted;
// was - (void)DTMFReceived:(nonnull NSString *)dtmf callMember:(nonnull NXMCallMember *)callMember;
- (void)didReceive:(nonnull NSString *)dtmf fromCallMember:(nonnull NXMCallMember *)callMember;
NXMEventyNXMMemberEventañadir objeto miembro en lugar dememberId:
@property (nonatomic, readonly, nonnull) NXMMember *member;
NXMImageInfopropiedades renombradas:
@property NSInteger sizeInBytes; // was size
@property NXMImageSize size; // was type
NXMMessageStatusEventpropiedad renombrada:
@property NSInteger referenceEventId; // was refEventId
NexmoClientlogger expuesto -NXMLoggerobjeto:
[NXMLogger setLogLevel:NXMLoggerLevelDebug];
NSArray *logNames = [NXMLogger getLogFileNames];
Eliminado
NXMLoggerDelegate
NXMClient myClient = ...;
[myClient setLoggerDelegate:LoggerDelegate];
0.3.0 - 2019-06-03
Añadido
- Interoperabilidad con los SDK de JS y Android: ahora se pueden realizar llamadas entre aplicaciones que utilicen los SDK de iOS, JS o Android.
Cambiado
NXMCallMember- añadido canal miembro con datos de dirección:
@interface NXMCallMember : NSObject
...
@property (nonatomic, readonly, nullable) NXMChannel *channel;
...
@end
@interface NXMChannel : NSObject
@property (nonatomic, readonly, nonnull) NXMDirection *from;
@property (nonatomic, readonly, nullable) NXMDirection *to;
@end
@interface NXMDirection : NSObject
@property (nonatomic, assign) NXMDirectionType type;
@property (nonatomic, copy, nullable) NSString *data;
@end
Eliminado
NXMCallMember'sphoneNumberychannelTypefueron eliminados.
0.2.56 - 2019-01-24
Añadido
- Cambia el archivo de registro.
Cambiado
- Mejoras en la gestión de la memoria.
- Recoge los eventos nuevos y perdidos en los cambios de red.
- Devolución de objetos Usuario en lugar de Ids.
- Corrección de errores.
- Añadir
non-nullonullablea las propiedades. - Cambie el nombre de
call.declineacall.reject.
0.1.52 - 2019-01-01
Versión beta inicial con funciones básicas de llamada y chat.
Consulte la lista de funciones y usos: https://developer.nexmo.com/
Cocoapods: https://cocoapods.org/pods/nexmoclient