一、功能介绍
·关注 功能允许用户选择他们感兴趣的其他用户,以便及时获取这些用户最新的动态、发布或活动信息,你可以根据用户的关注列表提供个性化的内容推荐。
·粉丝 功能是指用户被其他人关注的状态,当用户 A 关注用户 B 时,A 就成为了 B 的粉丝。
通过关注和粉丝功能,社交应用和网站能够创建一个活跃的、相互连接的用户网络,促进信息的传播和社区的构建。
二、使用说明
注意:说明:
注意:TUILiveKit 的关注主播功能依赖于即时通信 IM 的关注&粉丝相关的 API,所以需要开通即时通信 IM 相关的套餐包。具体可参见 关注&粉丝 文档。
| 未关注状态 | 关注状态 | 主播信息面板 |
| | | |
·关注主播:你可以在直播界面的左上角的直播间信息区域点击按钮关注主播
·取消关注:你可以在直播界面的左上角的直播间信息区域点击按钮可以取消关注主播
·查看主播粉丝数:你可以点击直播界面左上角的直播间信息区域弹出直播间详情面板,该面板会展示主播的粉丝数量。
三、功能定制
如果当前的 UI 不满足你的需求,你可以通过修改如下目录中的源代码,来实现你满意的 UI 效果。为了你更方便的定制 UI,这里对关注功能相关的文件做了介绍。
AndroidiOS// 文件位置:Android/tuilivekit/src/Main/java/com/trtc/uikit/livekit/common/uicomponent/roominfo // 直播间信息UI组件的实现目录 ├── RoomInfoDetailView.java // 直播间信息详情面板视图的具体实现 └── RoomInfoView.java // 直播间信息视图的具体实现,点击该视图,会展示详情面板视图// 文件位置:TUILiveKit/iOS/TUILiveKit/Sources/Component/LiveInfo/LiveInfo // 直播间信息UI组件的实现目录 ├── LiveInfoView.swift // 直播间信息视图的具体实现,点击该视图,会展示详情面板视图 └── View └── LiveInfoPanelView.swift // 直播间信息详情面板视图的具体实现
四、关注主播
AndroidiOSJava// 文件位置:Android/tuilivekit/src/Main/java/com/trtc/uikit/livekit/service/impl/LiveServiceImpl.javaList<String> userIDList = new ArrayList<>();userIDList.add("userId");V2TIMManager.getFriendshipManager().followUser(userIDList, new V2TIMValueCallback<List<V2TIMFollowOperationResult>>() { @Override public void onSuccess(List<V2TIMFollowOperationResult> results) { } @Override public void onError(int code, String message) { } });Swift// 文件位置:TUILiveKit/iOS/TUILiveKit/Sources/Component/LiveInfo/RoomInfoServicepublic func followUser(userId: String) { let userInfo = TUIUserInfo() userInfo.userId = userId V2TIMManager.sharedInstance().followUser([userId]) { [weak self] followResultList in guard let self = self, let result = followResultList?.first else { return } if result.resultCode == 0, !self.state.followingList.contains(where: { $0.userId == userId }) { self.state.followingList.insert(userInfo) self.getFansNumber() } } fail: { code, message in debugPrint("[RoomInfo] followUser failed, error:\\(code), message:\\(String(describing: message))") }}
五、取消关注主播
AndroidiOSJava// 文件位置:Android/tuilivekit/src/Main/java/com/trtc/uikit/livekit/service/impl/LiveServiceImpl.javaList<String> userIDList = new ArrayList<>();userIDList.add("userId");V2TIMManager.getFriendshipManager().unfollowUser(userIDList, new V2TIMValueCallback<List<V2TIMFollowOperationResult>>() { @Override public void onSuccess(List<V2TIMFollowOperationResult> results) { } @Override public void onError(int code, String message) { } });Swift// 文件位置:TUILiveKit/iOS/TUILiveKit/Sources/Component/LiveInfo/RoomInfoServicepublic func unfollowUser(userId: String) { V2TIMManager.sharedInstance().unfollowUser([userId]) { [weak self] followResultList in guard let self = self, let result = followResultList?.first else { return } if result.resultCode == 0 { self.state.followingList = state.followingList.filter { $0.userId != userId} } } fail: { code, message in debugPrint("[RoomInfo] unfollowUser failed, error:\\(code), message:\\(String(describing: message))") }}
六、查看主播关注状态
AndroidIOSJava// 文件位置:Android/tuilivekit/src/Main/java/com/trtc/uikit/livekit/service/impl/LiveServiceImpl.javaList<String> userIDList = new ArrayList<>();userIDList.add("userId");V2TIMManager.getFriendshipManager().checkFollowType(userIDList, new V2TIMValueCallback<List<V2TIMFollowTypeCheckResult>>() { @Override public void onSuccess(List<V2TIMFollowTypeCheckResult> results) { } @Override public void onError(int code, String message) { } });// 文件位置:TUILiveKit/iOS/TUILiveKit/Sources/Component/LiveInfo/RoomInfoServicepublic func isFollow(userId: String) { let userInfo = TUIUserInfo() userInfo.userId = userId V2TIMManager.sharedInstance().checkFollowType([state.ownerId]) { [weak self] checkResultList in guard let self = self, let result = checkResultList?.first else { return } if result.followType == .FOLLOW_TYPE_IN_BOTH_FOLLOWERS_LIST || result.followType == .FOLLOW_TYPE_IN_MY_FOLLOWING_LIST { if !self.state.followingList.contains(where: { $0.userId == userId }) { self.state.followingList.insert(userInfo) } } else { self.state.followingList = state.followingList.filter { $0.userId != userId} } } fail: { code, message in debugPrint("[RoomInfo] isFollow failed, error:\\(code), message:\\(String(describing: message))") }}
七、获取粉丝数量
AndroidiOSJava// 文件位置:Android/tuilivekit/src/Main/java/com/trtc/uikit/livekit/service/impl/LiveServiceImpl.javaList<String> userIDList = new ArrayList<>();userIDList.add("userId");V2TIMManager.getFriendshipManager().getUserFollowInfo(userIDList, new V2TIMValueCallback<List<V2TIMFollowInfo>>() { @Override public void onSuccess(List<V2TIMFollowInfo> results) { } @Override public void onError(int code, String message) { } });// 文件位置:TUILiveKit/iOS/TUILiveKit/Sources/Component/LiveInfo/RoomInfoServicepublic func getFansNumber() { V2TIMManager.sharedInstance().getUserFollowInfo([state.ownerId]) { [weak self] followInfoList in guard let self = self, let followInfo = followInfoList?.first else { return } self.state.fansNumber = Int(followInfo.followersCount) } fail: { code, message in debugPrint("[RoomInfo] getFansNumber failed, error:\\(code), message:\\(String(describing: message))") }}