
实现好友请求
.m
1 #PRagma mark - rosterHandle
2
3 // initRoster
4 - (void)initRoster {
5 self.xmppRosterMemory = [[XMPPRosterMemoryStorage alloc] init];
6 self.xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:self.xmppRosterMemory];
7 [_xmppRoster addDelegate:self delegateQueue:dispatch_get_main_queue()];
8 [_xmppRoster activate:self.xmppStream];
9 }
10
11 - (void)addFriend: (NSString *)accountName {
12 [_xmppRoster addUser:[XMPPJID jidWithString:[accountName stringByAppendingString:DOMAINS]] withNickname:nil];
13 }
14
15 - (void)removeFriend: (NSString *)accountName {
16 [_xmppRoster removeUser:[XMPPJID jidWithString:[accountName stringByAppendingString:DOMAINS]]];
17 }
18
19 // call back
20 - (void)dealWithFriendAsk: (BOOL)isAgree
21 accountName: (NSString *)accountName {
22 XMPPJID * jid=[XMPPJID jidWithString:[NSString stringWithFormat:@"%@%@",accountName,DOMAINS]];
23 if(isAgree){
24 [self.xmppRoster acceptPresenceSubscriptionRequestFrom:jid andAddToRoster:NO];
25 }else{
26 [self.xmppRoster rejectPresenceSubscriptionRequestFrom:jid];
27 }
28
29 }
30
31 #pragma mark addFriendDelegateMethods
32 - (void)xmppRoster:(XMPPRoster *)sender didReceivePresenceSubscriptionRequest:(XMPPPresence *)presence {
33
34 NSString *presenceFromUser =[NSString stringWithFormat:@"%@", [[presence from] user]];
35 if (self.acceptOrDenyFriend != nil) {
36 BOOL isAgree = self.acceptOrDenyFriend(presenceFromUser);
37 [self dealWithFriendAsk:isAgree accountName:presenceFromUser];
38 }
39 }
40
41 @end
.h
1 /*! 2 * @Author Dylan. 3 * 4 * addRoster. 5 */ 6 // if you want to deny or add friend. please call this block 7 @property (nonatomic, copy) BOOL (^acceptOrDenyFriend) (NSString *); 8 @property (nonatomic, strong) XMPPRoster * xmppRoster; 9 10 /*! 11 * @Author Dylan. Methods 12 */ 13 - (void)addFriend: (NSString *)accountName; 14 - (void)removeFriend: (NSString *)accountName;