美文网首页
融云公众号的使用

融云公众号的使用

作者: eAssh | 来源:发表于2019-11-12 15:22 被阅读0次

    说明

    公众号模块主要包括公众号列表、消息列表、详情和搜索界面。融云都上诉界面进行了封装,使用公众号只需调用融云自带的 viewcontroll,包括:
    * RCPublicServiceListViewController:公众号列表
    * RCPublicServiceChatViewController:消息列表
    * RCPublicServiceProfileViewController:详情
    * RCPublicServiceSearchViewController:搜索

    自定义UI

    绝大情况下,我们都需要安装美工所提供的效果图来进行开发,但是使用融云的公众号自定义UI有着诸多限制。

    公众号列表

    公众号列表自定义的方法相对比较简单,提供一个tableview,数据源通过融云的API去获取。

    NSArray *publicServices = [[RCIMClient sharedRCIMClient] getPublicServiceList];
    

    这里所能获取的是已关注的公众号数组。

    消息列表

    最主要的消息列表是没有办法提供自定义的。除了导航栏和输入框,公众号消息 cell 无法和其他自定义消息一样去定义。

    按照正常的融云自定义消息的方式去定义的话

    // RCPublicServiceMultiRichContentMessage公众号的图文消息
    [self registerClass:[SubscriptionMessageCell class] forMessageClass:[RCPublicServiceMultiRichContentMessage class]]
    

    则会报错

    -[SubscriptionMessageCell setPublicServiceDelegate:]: unrecognized selector sent to instance 0x7f99e8e39b50
    

    这个 delegate 并没有开放给我们

    融云给出的答复是:
    * 联系我们商务同事索取 IMKit 源码,直接拿 IMKit 中RCPublicServiceMultiRichContentMessage 对应 cell 的源码进行修改
    * 详细描述您的需求,我们根据您的需求判断如何处理
    基本等于没法改…

    底部输入框的隐藏方法

    self.chatSessionInputBarControl.hidden = YES;
            CGRect rect = self.conversationMessageCollectionView.frame;
            rect.size.height = self.view.frame.size.height-kStatusAndNavBarHeight;
            self.conversationMessageCollectionView.frame = rect;
    

    自定义消息列表的启动

    // ConversationType_APPSERVICE应用内公众号(无法添加底部菜单栏)
        RCPublicServiceProfile *servicePro = [_sortDataSource objectForKey:_indexDataSource[indexPath.section]][indexPath.row];
        SubscriptionViewController *vc = [[SubscriptionViewController alloc] init];
        vc.conversationType = ConversationType_APPSERVICE;
        vc.targetId = servicePro.publicServiceId;
        vc.title = servicePro.name;
        vc.servicePro = servicePro;
        [[AppDelegate sharedAppDelegate] pushViewController:vc];
    

    详情

    获取公众号详情的 API 有两种:
    从服务器获取

    - (void)getPublicServiceProfile:(NSString *)targetId
                   conversationType:(RCConversationType)type
                          onSuccess:(void (^)(RCPublicServiceProfile *serviceProfile))onSuccess
                            onError:(void (^)(NSError *error))onError;
    

    从缓存中获取

    - (RCPublicServiceProfile *)getPublicServiceProfile:(RCPublicServiceType)publicServiceType
                                        publicServiceId:(NSString *)publicServiceId;
    

    这两个方法都只能获取已关注的公众号,无法获取未关注公众号

    详情中的关注和取消关注 API 如下:
    关注:

    - (void)subscribePublicService:(RCPublicServiceType)publicServiceType
                   publicServiceId:(NSString *)publicServiceId
                           success:(void (^)(void))successBlock
                             error:(void (^)(RCErrorCode status))errorBlock;
    

    如果后台设置的公众号是默认关注,是无法取消的
    取消关注:

    - (void)unsubscribePublicService:(RCPublicServiceType)publicServiceType
                     publicServiceId:(NSString *)publicServiceId
                             success:(void (^)(void))successBlock
                               error:(void (^)(RCErrorCode status))errorBlock;
    

    搜索

    融云搜索API
    可设置为模糊搜索,搜索出结果包括关注和未关注

    - (void)searchPublicServiceByType:(RCPublicServiceType)publicServiceType
                           searchType:(RCSearchType)searchType
                            searchKey:(NSString *)searchKey
                              success:(void (^)(NSArray *accounts))successBlock
                                error:(void (^)(RCErrorCode status))errorBlock;
    

    如果只需要已关注公众号,调用获取公众号接口,在返回数组中筛选数据

    相关文章

      网友评论

          本文标题:融云公众号的使用

          本文链接:https://www.haomeiwen.com/subject/gohqictx.html