leancloud-feedback-ios
LeanCloud Feedback 模块是 LeanCloud 开源的一项用户反馈组件,反馈内容存储在 LeanCloud 云端,开发者可以通过 LeanCloud 提供的统计分析客户端 LeanAnalytics 来实时查看和回复用户反馈。
用户反馈界面如下:
如何贡献
您可以通过提交 issue 或发送 pull request 来贡献代码。开源世界因我们的参与而更加美好。
项目结构
为了便于测试,我们将 feedback 模块的代码和 demo 都放在了一起,整个 repo 结构如下:
.
├── AVOSCloud.framework <---- 这是依赖的 AVOSCloud.framework,请保持最新
├── LeanCloudFeedback <---- feedback 主要代码
├── LeanCloudFeedbackTests
├── LeanCloudFeedbackDemo <---- feedback demo 主要代码
│ ├── LeanCloudFeedbackDemo
│ ├── LeanCloudFeedbackDemo.xcodeproj
│ └── LeanCloudFeedbackDemoTests
└── README.md
核心概念
LCFeedbackReply
FeedbackReply 表征了反馈系统中,用户或开发者每次的回复。通过 ReplyType 属性可以指定不同的回复类型。LCFeedbackReply 内部主要记录以下信息:
- content,反馈的文本内容
- replyType,类型标识,表示是用户提交的回复还是开发者回复的
- attachment,反馈对应的附件信息
LCFeedbackThread
代表了用户和开发者之间的整个交流过程,与单个用户一一对应。一个用户对应一个 FeedbackThread,一个 FeedbackThread 内可以包含多个 FeedbackReply。LCFeedbackThread 内部主要记录以下信息:
- contact,用户联系方式
- content,用户第一次反馈的文本
- status,当前状态:open 还是 close
- remarks,预留字段,开发者可以用来标记的其他信息
如何编译
Xcode 编译
在 Xcode 中选择 UniversalFramework Target,设备选为 iOS Device,在 Product 菜单中选择 Archive 即可开始编译。编译完成后,结果将保存在当前 build 目录下。
.
├── LeanCloudFeedback.build
│ ├── Release-iphoneos
│ │ └── LeanCloudFeedback.build
│ └── Release-iphonesimulator
│ └── LeanCloudFeedback.build
└── Release-iphoneuniversal
└── LeanCloudFeedback.framework <------ 这里就是编译出来的 framework
命令行编译
在项目根目录下执行以下命令即可开始编译:
xcodebuild -target UniversalFramework -config Release
编译完成后,结果文件目录与上面示例一致。
如何运行 demo
在 LeanCloudFeedbackDemo 目录下,直接用 Xcode 打开 LeanCloudFeedbackDemo.xcodeproj 工程。LeanChatFeedback Framework 是一个动态库,需要在 Demo 的 Embeded Libraries 中引入。设置完毕后,便可以在真机和模拟器上运行。
如何在项目中使用此组件
为了便于调试,我们建议直接将本项目的源代码添加到自己的工程中,以使用 feedback 组件。要访问默认的反馈界面,开发者可以在当前 UIViewController 中加入以下代码即可(请记得修改标题和联系方式):
LCUserFeedbackAgent *agent = [LCUserFeedbackAgent sharedInstance];
[agent showConversations:self title:@"提点意见" contact:@"热心用户"];
也可以通过 pod 的方式安装,在 podfile 中加入以下声明,
pod 'LeanCloudFeedback'
或者使用动态库,
pod 'LeanCloudFeedbackDynamic'
其他问题
如何增加额外的数据?
可以扩展 LCUserFeedbackReply 的属性值,以便保存更多内容。例如,如果允许用户截图来反馈问题,可以在应用中将图片存储到 LeanCloud 云端(使用 AVFile),然后将 AVFile 的 URL 保存到 LCUserFeedbackReply 的 attachment 属性。
变更日志
0.0.8
- 增加本地化字符串的支持
- LCUserFeedbackViewController 新增 presented 参数,用于决定返回按钮和样式。默认为 YES,会创建一个返回按钮。当通过 pushViewController 进入时,请设置为 NO,则不会创建返回按钮,使用 NavigationController 默认的返回按钮。更多可见 Demo。
0.0.7
- 结合 LeanCloud SDK 的用户系统,如果当前有用户登录,将记录 user id,方便定位反馈的用户
0.0.6
- 移除了+iPhone 6的API,使得本项目最低能支持 iOS6
0.0.5
- 开放 LCUserFeedbackViewController.h,只需引入
<LeanCloudFeedback/LeanCloudFeedback.h>
即可
0.0.4
- 修复了发送的反馈没有显示时间戳的问题、更改 AVOSCloud 依赖至 ~> 3.1,使得主项目引用时没有收到此库的限制
0.0.3
- 增加图片上传功能,让用户可以上传图片来反映问题
0.0.2
- 增加了导航栏、联系人表头、字体的定制
- 去掉了 LeftCell 类 和 RightCell 类,统一为 FeedbackCell,因为左右 Cell 大部分代码都是相同可复用的。
0.0.1
- 发布