怎么做?现在输入...在聊天应用程序中
How to do? Now Typing... in chat app
我正在开发聊天应用程序。
我想展示如果我的朋友正在输入内容,那么最终聊天 window 将显示......现在输入...
我知道一点代码(判断但不确定),但是在哪里调用 api 或者它是由某种聊天服务器的 属性 完成的?
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (range.length > 0)
{
// Friend is deleting
}
else
{
// Friend is typing
}
}
编辑2:
我的回答是基于 XMPP,因为问题说它是一个聊天应用程序。聊天应用程序通常使用 XMPP 协议。根据您的要求,您可以使用以下解决方案:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([string isEqualToString:@""]) {
// Deleting. This will call multiple time so it's on you if you want to implement it. It may be optimize at some level.
// You can use performSelector withDelay & cancelSelectors etc.
}
else {
//Typing
if (textField.text.length == 0) {
// TextField is empty right now and the user has began typing. So call the service with typing status.
//This condition is useful to prevent web service call every time user type.
}
}
}
编辑1:
勾选XEP-0022。这似乎可以满足您的需求。
当 A 打字时(从用户 A 的客户端发送消息):
<message
from='a@server.com'
to='b@server.com'>
<x xmlns='jabber:x:event'>
<composing/>
<id>message22</id>
</x>
</message>
B 的客户将收到以下信息:
<message
from='a@server.com'
to='b@server.com'>
<x xmlns='jabber:x:event'>
<composing/>
<id>message22</id>
</x>
</message>
现在您可以处理响应并相应地显示内容了。
原文:
有一个 XEP-0085 可用于聊天状态。当您在文本字段中检测到修改时,您可以发送以下节,如 link:
中所述
<message
from='bernardo@shakespeare.lit/pda'
to='francisco@shakespeare.lit/elsinore'
type='chat'>
<composing xmlns='http://jabber.org/protocol/chatstates'/>
</message>
希望对您有所帮助。
我正在开发聊天应用程序。
我知道一点代码(判断但不确定),但是在哪里调用 api 或者它是由某种聊天服务器的 属性 完成的?
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (range.length > 0)
{
// Friend is deleting
}
else
{
// Friend is typing
}
}
编辑2: 我的回答是基于 XMPP,因为问题说它是一个聊天应用程序。聊天应用程序通常使用 XMPP 协议。根据您的要求,您可以使用以下解决方案:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([string isEqualToString:@""]) {
// Deleting. This will call multiple time so it's on you if you want to implement it. It may be optimize at some level.
// You can use performSelector withDelay & cancelSelectors etc.
}
else {
//Typing
if (textField.text.length == 0) {
// TextField is empty right now and the user has began typing. So call the service with typing status.
//This condition is useful to prevent web service call every time user type.
}
}
}
编辑1:
勾选XEP-0022。这似乎可以满足您的需求。
当 A 打字时(从用户 A 的客户端发送消息):
<message
from='a@server.com'
to='b@server.com'>
<x xmlns='jabber:x:event'>
<composing/>
<id>message22</id>
</x>
</message>
B 的客户将收到以下信息:
<message
from='a@server.com'
to='b@server.com'>
<x xmlns='jabber:x:event'>
<composing/>
<id>message22</id>
</x>
</message>
现在您可以处理响应并相应地显示内容了。
原文:
有一个 XEP-0085 可用于聊天状态。当您在文本字段中检测到修改时,您可以发送以下节,如 link:
中所述<message
from='bernardo@shakespeare.lit/pda'
to='francisco@shakespeare.lit/elsinore'
type='chat'>
<composing xmlns='http://jabber.org/protocol/chatstates'/>
</message>
希望对您有所帮助。