前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BBSSDK 产品分析

BBSSDK 产品分析

作者头像
全栈程序员站长
发布2022-06-29 18:36:19
4070
发布2022-06-29 18:36:19
举报
文章被收录于专栏:全栈程序员必看

产品介绍

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

UI自定义

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

简约版

时尚版

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

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

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

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

1. 打开SDK文件夹下的BBSSDKUI.bundle,在改bundle下面,分为Common|Forum|Home|LBS|User 等,不同的界面会有对应界面的文件夹,存放该界面对应的图片资源

2. 找到不同的界面下不同的分类,用户可以根据自己的需要,对具体的界面进行针对性的替换,当然,这里面还包含了公共部分

3. 图片文件名包含@2x,@3x等后缀以适配不同屏幕清晰度,替换时需要都替换

BBSSDKUI.bundle

└───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中的展示,给用户置顶版块的权限。

用户登录

• 用户可以使用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中提供了用户签到功能,并能查看签到的用户信息。

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/101567.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年6月8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档