天天看点

BBSSDK 产品分析

产品介绍

BBSSDK主要是将论坛的一些文章,版块,帖子,评论等内容,整合到App,可以实现用户便捷获取信息,浏览阅读,该移动数据方案,也可以自动同步Discuz服务端数据,且不限制存储空间和流量。

UI自定义

BBSSDK分为简约版和时尚版两个版本,这两个版本除了展示效果的不同,功能完全一致.简约版注重UI的简洁,界面清晰利落.时尚版追求UI的炫酷,里面实现了很多毛玻璃,动画等效果.具体选择哪个版本,依据不同业务需求而定.

BBSSDK 产品分析
简约版
BBSSDK 产品分析

时尚版

主界面展示了论坛和门户两大模块.这两个模块实现不同业务功能,但并不一定全部展示.展示哪个模块由后台决定,用户可以通过后台进行手动配置.功能结构如下:

BBSSDK 产品分析

• 通过集成我们的SDK,你可以自己设定整个界面显示的内容,比如首页部分,该界面有资讯和论坛两个部分,如果用户有不同的业务需求,则用户可以通过后台的配置,可以隐藏或者显示指定的内容,能更好的适用于不同的业务场景。

• 由于BBSSDK中包含有多个板块内容,且每个板块内容是完全不同分类的,该用户也可以只使用板块中的一种来展示自己内容,并在改部分也有分类筛选以及按回复时间排序和按发帖时间排序等功能。

BBSSDK 产品分析
• 对于BBSSDK的UI界面,如果用户想使用自己独特的个性图片,则只需要更换一些具体界面的图片,具体操作步骤如下:

  1. 打开SDK文件夹下的BBSSDKUI.bundle,在改bundle下面,分为Common|Forum|Home|LBS|User 等,不同的界面会有对应界面的文件夹,存放该界面对应的图片资源
  2. 找到不同的界面下不同的分类,用户可以根据自己的需要,对具体的界面进行针对性的替换,当然,这里面还包含了公共部分
  3. 图片文件名包含@2x,@3x等后缀以适配不同屏幕清晰度,替换时需要都替换
│     
│
└───threerdParty   //三方库资源文件
│   │ MJRefresh  
│   │ SVProgressHUD  
│   │ ZSSRichEditor  
│   
└───Common       //公用部分图片资源
│   │    
│   
└───Emoji       //表情图片资源
│   │ coolmonkey  
│   │ default
|   | grapeman       
│   
└───Forum      //版块图片资源
│   │    
│   
└───Home      //主页图片资源
│   │    
│   
└───LBS      //地理位置图片资源
│   │     
│   
└───Login&Register  // 登录注册页面图片资源
           

• BBSSDK 可以实现自定义接口,在获取帖子列表接口中,用户可以将传入的版块id参数设置为唯一的,则请求出的数据信息就只有一种版块数据,此外,用户也可以设置selectType参数为唯一值,则数据展示也会值显示用户指定的列表信息。

/**
 获取帖子列表

 @param fid 板块id
 @param orderType 排序依据 :createdOn 按照发帖时间排序.lastPost 按照回帖时间排序。
 @param selectType displayOrder 置顶,digest 精华,heats 热门,latest 最新
 @param pageIndex 页索引
 @param pageSize 每页请求大小
 @param result 回调
 */
+ (void)getThreadListWithFid:(NSInteger)fid
                   orderType:(NSString *)orderType
                  selectType:(NSString *)selectType
                   pageIndex:(NSInteger)pageIndex
                    pageSize:(NSInteger)pageSize
                      result:(void (^)(NSArray *threadList, NSError *error))result;
                      
           

• 由于BBSSDK的UI是开源的,用户可以在原有UI界面的基础上进行布局设置,例如个人中心部分,用户可以值使用我们BBSSDK的用户信息,而界面可以添加其他信息,将BBSSDK中的数据作为一个单独项展示

BBSSDK 产品分析

• 在BBSSDK中,也可以自定义版块,由于BBSSDK中数据完全可以有后台来配置模块部分,故用户可以自己设定自己产品论坛中拥有的模块,并可以按照BBSSDK中的展示,给用户置顶版块的权限。

BBSSDK 产品分析

用户登录

• 用户可以使用QQ登录或者微信登录,此种方式登录后,BBSSDK会自动获取用户的基本信息,或者用户也可以使用注册的方式自己进行注册登录。一旦用户登录之后,我们的BBSSDK就会将用户的信息进行缓存记录,以方便在发帖或者评论时进行身份验证使用,代码如下:

- (void)authLoginWithOpenid:(NSString *)openid
                    unionid:(NSString *)unionid
                   authType:(NSString *)authType
                  createNew:(NSNumber *)createNew
                   userName:(NSString *)userName
                      email:(NSString *)email
                   password:(NSString *)password
                 questionId:(NSNumber *)questionId
                     answer:(NSString *)answer
                 coordinate:(BBSLocationCoordinate *)coordinate
                     result:(void(^)(BBSUser *user, id res, NSError *error))result
{
    __weak typeof(self) theContext = self;
    BBSService *service = [BBSService sharedInstance];
    [service authLoginWithAppkey:_appKey
                          openid:openid
                         unionid:unionid
                        authType:authType
                       createNew:createNew
                        userName:userName
                           email:email
                        password:password
                      questionId:questionId
                          answer:answer
                      coordinate:coordinate
                            duid:self.duid
                          apppkg:self.apppkg
                          appver:self.appver
                          sdkver:self.sdkver
                            plat:@(self.plat)
                         factory:self.factory
                           model:self.model
                          sysver:self.sysver
                          result:^(id res, BBSError *error)
     {
         BBSUser *user = nil;
         if (!error)
         {
             if ([res isKindOfClass:NSDictionary.class])
             {
                 user = [[BBSUser alloc] init];
                 [user setValueForPropertiesWithDictionary:res];
                 
                 //缓存用户信息
                 theContext.currentUser= user;
                 [theContext _saveCurrentUser];
             }
         }
         
         if (result)
         {
             result(user,res,error);
         }
     }];
}
           

• 在BBSSDK中,用户进行操作时,也会做一个登录的身份验证,比如在用户进行发帖、评论、浏览等操作中,验证如下:

- (void)postError:(NSError *)error title:(NSString *)title html:(NSString *)html
{
    
    if (error.code == 9001200)
    {//token失效,请重新登录
        [BBSUIContext shareInstance].currentUser = nil;
    }
    
   //code....
   
}
           

• 在BBSSDK中登录也接入了UCenter方案,UCenter提供同步登录、退出、注册等相关接口,可以实现用户使用一个账号,在一处登录,全站通行。

深度链接

BBSSDK的深度链接功能,主要通过ShareSDK和MobLink结合来完成,主要用于实现社区、其他App,浏览网站等不同功能模块之间的快速跳转。在BBSSDK中,BBSSDKUI对ShareSDK和MobLink采取弱引用的集成方式。通过这样方式,在集成BBSSDKUI.framework的时候,即使不添加ShareSDK和MobLink这两个模块,也不会影响其他业务功能。实现了整个项目的低耦合。

• 具体使用配置如下

  1. 申请AppKey,并引用MobLink的SDK库
  2. 在Xcode中,添加URL的Scheme
  3. 在MObLink官方配置Bundele ID,包名等信息进行生成Universal Link
  4. 将生成的Universal Link,添加到项目中的 Associated Domains 中
  5. 添加功能代码如下
+ (NSString *)MLSDKPath
{
    return @"/portal/detail";
}

- (instancetype)initWithMobLinkScene:(BBSMOBFScene *)scene;
{
    self = [super init];
    if (self)
    {
        NSDictionary *sceneDict = [scene getParams];
        self.aid = [sceneDict[@"aid"] integerValue];
    }
    return self;
}

           

• 等以上所需配置完毕,用户需要先分享内容到第三方App比如微信,在微信中打开分享的链接,点击访问原网页,可以看到提示步骤,并按照提示步骤进行操作,会看到如下图,点击打开即会回到用户使用BBSSDK集成的App中

BBSSDK 产品分析
BBSSDK 产品分析

签到 && 消息

• BBSSDK中提供了用户签到功能,并能查看签到的用户信息。

• 当用户发帖时,别的用户对帖子评价或者喜欢等操作,会收到消息通知,可以及时获取跟帖动态。