我正在爲iphone開發一個xmpp客戶端。我能夠發送和接收消息。我想自動接受好友請求,而不會提示用戶。我將在哪些功能中收到請求。請給我任何提示。在xmpp客戶端接受好友請求iphone
在此先感謝。
我正在爲iphone開發一個xmpp客戶端。我能夠發送和接收消息。我想自動接受好友請求,而不會提示用戶。我將在哪些功能中收到請求。請給我任何提示。在xmpp客戶端接受好友請求iphone
在此先感謝。
好的,我有一個完美的答案給你!
下面是代碼:
- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence {
// a buddy went offline/online
NSString *presenceType = [presence type]; // online/offline
NSString *myUsername = [[sender myJID] user];
NSString *presenceFromUser = [[presence from] user];
if (![presenceFromUser isEqualToString:myUsername]) {
if ([presenceType isEqualToString:@"available"]) {
[_chatDelegate newBuddyOnline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, kHostName]];
NSLog(@"presence user is %@",presenceFromUser);
}
else if ([presenceType isEqualToString:@"unavailable"]) {
[_chatDelegate buddyWentOffline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, kHostName]];
NSLog(@"presence user is invisible %@",presenceFromUser);
}
else if ([presenceType isEqualToString:@"subscribe"]) {
[_chatDelegate newBuddyOnline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, kHostName]];
NSLog(@"presence user wants to subscribe %@",presenceFromUser);
}
}
}
我爲你提供了DidReceivePresence方法,爲您更好地瞭解完整的代碼。
現在讓我用代碼解釋你。如果你注意到else條件,我正在比較我們接收到的值(元素)。因此,當我將字符串作爲Subscribe(當用戶發送好友請求時)時,您只需要將該特定用戶添加到您的tableview好友列表中。
您可以從「presenceFromUser」獲取用戶名。
如果您需要了解更多信息,請發送電子郵件至[email protected],因爲當您回覆我的回答時,我沒有收到警報,但我會回來並在此回覆,以便它可以幫助其他人!我很快就會發佈一個教程http://Czartechnogeeks.com/iSolutions
我很高興我可以在幫助我分享一些有價值的東西給用戶後使用。
U不會在單獨的功能中接收請求。每當一個好友開始在線或發送請求時,您的didReceivePresence委託函數就會被調用。如果您獲得presence type = subscription,那麼它是buddyrequest。希望這可以幫助你。
您將收到功能didReceivePresence中的訂閱。
要接受訂閱,您可以使用此代碼:
NSXMLElement *presence = [NSXMLElement elementWithName:@"presence"];
[presence addAttributeWithName:@"type" stringValue:@"subscribed"];
[presence addAttributeWithName:@"to" stringValue:[presence fromStr]];
[presence addAttributeWithName:@"from" stringValue:@"[email protected]"];
[[self xmppStream] sendElement:presence];
可以將它幫助:)
我嘗試接受訂閱,但它不工作... – 2013-05-24 07:20:54
您收到的錯誤是什麼? – obaid 2014-11-02 09:31:03
怎麼可以接受或拒絕訂閱你能告訴我 – 2013-05-24 07:19:36
您將收到朋友的名字與一起presenceType那裏你可以處理接受或拒絕,並將presenceType命令發送給didSendPresence方法中的特定用戶 – obaid 2014-11-02 09:30:27
@obaid,你好。感謝代碼。你可以在這裏清楚「_chatDelegate」是什麼。我怎樣才能接受和接受朋友的要求? – 2014-11-29 06:46:11