/// <summary> /// 删除好友 /// </summary> /// <param name="accid">对方账号</param> /// <param name="deleteAlias">是否删除好友备注</param> /// <param name="cb">操作结果回调</param> public static void DeleteFriend(string accid, bool deleteAlias, FriendOperationDelegate cb) { IntPtr ptr = DelegateConverter.ConvertToIntPtr(cb); string jsonExt = Newtonsoft.Json.JsonConvert.SerializeObject(new { delete_alias = deleteAlias }); FriendNativeMethods.nim_friend_delete(accid, jsonExt, DeleteFriendDelegate, ptr); }
/// <summary> /// 更新好友资料 /// </summary> /// <param name="profile"></param> /// <param name="cb"></param> public static void UpdateFriendInfo(NIMFriendProfile profile, FriendOperationDelegate cb) { if (profile == null || string.IsNullOrEmpty(profile.AccountId)) { throw new ArgumentException("profile or accountid can't be null"); } string jsonParam = profile.Serialize(); FriendNativeMethods.nim_friend_update(jsonParam, null, cb, IntPtr.Zero); }
/// <summary> /// 更新好友资料 /// </summary> /// <param name="profile"></param> /// <param name="cb"></param> public static void UpdateFriendInfo(NIMFriendProfile profile, FriendOperationDelegate cb) { if (profile == null || string.IsNullOrEmpty(profile.AccountId)) { throw new ArgumentException("profile or accountid can't be null"); } var jsonParam = profile.Serialize(); IntPtr ptr = DelegateConverter.ConvertToIntPtr(cb); FriendNativeMethods.nim_friend_update(jsonParam, null, UpdateFriendDelegate, ptr); }
/// <summary> /// 删除好友 /// </summary> /// <param name="accid">对方账号</param> /// <param name="cb">操作结果回调</param> public static void DeleteFriend(string accid, FriendOperationDelegate cb) { FriendNativeMethods.nim_friend_delete(accid, null, cb, IntPtr.Zero); }
/// <summary> /// 获取缓存好友信息 /// </summary> /// <param name="accountId"></param> /// <param name="cb"></param> public static void GetFriendProfile(string accountId, GetFriendProfileResultDelegate cb) { var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb); FriendNativeMethods.nim_friend_get_profile(accountId, null, GetFriendProfileCompleted, ptr); }
/// <summary> /// 添加、验证好友 /// </summary> /// <param name="accid">对方账号</param> /// <param name="verifyType">验证类型</param> /// <param name="msg"></param> /// <param name="cb">操作结果回调</param> public static void ProcessFriendRequest(string accid, NIMVerifyType verifyType, string msg, FriendOperationDelegate cb) { FriendNativeMethods.nim_friend_request(accid, verifyType, msg, null, cb, IntPtr.Zero); }
/// <summary> /// 统一注册好友变更通知回调函数(多端同步添加、删除、更新,好友列表同步) /// </summary> private static void RegFriendInfoChangedCb() { FriendNativeMethods.nim_friend_reg_changed_cb("", FriendInfoChangedHandler, IntPtr.Zero); }
/// <summary> /// 获取缓存好友列表 /// </summary> /// <param name="cb"></param> public static void GetFriendsList(GetFriendsListResultDelegate cb) { IntPtr ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb); FriendNativeMethods.nim_friend_get_list("", OnGetFriendListCompleted, ptr); }
/// <summary> /// 添加、验证好友 /// </summary> /// <param name="accid">对方账号</param> /// <param name="verifyType">验证类型</param> /// <param name="msg"></param> /// <param name="cb">操作结果回调</param> public static void ProcessFriendRequest(string accid, NIMVerifyType verifyType, string msg, FriendOperationDelegate cb) { var ptr = DelegateConverter.ConvertToIntPtr(cb); FriendNativeMethods.nim_friend_request(accid, verifyType, msg, null, ProcessFriendRequestDelegate, ptr); }
/// <summary> /// 在本地缓存数据中查询accid是否为自己的好友 /// </summary> /// <param name="accid">好友id</param> /// <returns>当正向和反向好友关系都为好友时返回true</returns> public static bool IsActiveFriend(string accid) { return(FriendNativeMethods.nim_friend_query_friendship_block(accid, null)); }
/// <summary> /// 删除好友 /// </summary> /// <param name="accid">对方账号</param> /// <param name="cb">操作结果回调</param> public static void DeleteFriend(string accid, FriendOperationDelegate cb) { IntPtr ptr = DelegateConverter.ConvertToIntPtr(cb); FriendNativeMethods.nim_friend_delete(accid, null, DeleteFriendDelegate, ptr); }