group的存放格式
SDK将group list存放在storage:groups namespace中,group的位置就是其在list中的顺序。也就是说,在下面举的例子中,group0的位置是0,SH的位置是1...。
SDK会将Personal group和LDAP group都存在storage中,type='ldap'说明这个group是LDAP group,否则是Personal group(因为LDAP和Personal的group名称有可能相同,因此我们必须要区分是LDAP还是Personal的group)。
SDK在Login的过程中,会向UI fire OnListGroup回调,这时候必须要过滤掉LDAP类型的group(LDAP的group会有专门的回调)。
<iq id='conid27' type='set'> <query xmlns='jabber:iq:private'> <storage xmlns='http://jabber.com/jabber/storage:groups'> <group type='ldap'>ldap group id</group> //position is 0 <group>SH</group> //position is 1 <group>Team</group> //pos is 2 <group>Test Users</group> //pos is 3 <group>US</group> //pos is 4 <group>SZ</group> //pos is 5 <group>HZ</group> //pos is 6 <group>HF</group> //pos is 7 </storage> </query> </iq>
SDK和UI之间的接口
UI在现实group list之前,调用SDK的GetGroupPos方法获取每个group的position,然后排序显示。用户拖动一个group时,UI调用SDK的MoveGroup方法,SDK将重新排好序的Group list存到storage中,同时向UI fire OnGroupMoved回调,UI收到回调以后,调用SDK的GetGroupPos方法获取所有group的position,然后重新排序显示。
SDK将用户组存放在storage中,并通过Iq查询获取并管理各组位置信息;UI根据SDK提供的位置信息排序展示用户组,并在用户操作时更新存储与显示。
5万+

被折叠的 条评论
为什么被折叠?



