#import "XMPPMessage+XEP_0184.h" #import "NSXMLElement+XMPP.h" @implementation XMPPMessage (XEP_0184) - (BOOL)hasReceiptRequest { NSXMLElement *receiptRequest = [self elementForName:@"request" xmlns:@"urn:xmpp:receipts"]; return (receiptRequest != nil); } - (BOOL)hasReceiptResponse { NSXMLElement *receiptResponse = [self elementForName:@"received" xmlns:@"urn:xmpp:receipts"]; return (receiptResponse != nil); } - (NSString *)receiptResponseID { NSXMLElement *receiptResponse = [self elementForName:@"received" xmlns:@"urn:xmpp:receipts"]; return [receiptResponse attributeStringValueForName:@"id"]; } - (XMPPMessage *)generateReceiptResponse { // Example: // // // // NSXMLElement *received = [NSXMLElement elementWithName:@"received" xmlns:@"urn:xmpp:receipts"]; NSXMLElement *message = [NSXMLElement elementWithName:@"message"]; NSString *to = [self fromStr]; if (to) { [message addAttributeWithName:@"to" stringValue:to]; } NSString *msgid = [self elementID]; if (msgid) { [received addAttributeWithName:@"id" stringValue:msgid]; } [message addChild:received]; return [[self class] messageFromElement:message]; } - (void)addReceiptRequest { NSXMLElement *receiptRequest = [NSXMLElement elementWithName:@"request" xmlns:@"urn:xmpp:receipts"]; [self addChild:receiptRequest]; } @end