LeanCloudFeedbackDynamic 0.1.1

LeanCloudFeedbackDynamic 0.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 商业
发布上次发布2016年1月

lzwjavaTianyong TangjwfingChenYilong 维护。



  • LeanCloud

leancloud-feedback-ios

LeanCloud Feedback 模块是 LeanCloud 开源的一个用户反馈组件,反馈内容存储在 LeanCloud 云端,开发者可以通过 LeanCloud 提供的统计分析客户端 LeanAnalytics 来实时查看和回复用户反馈。

用户反馈界面如下:

ios_feedback

如何贡献

您可以通过提交 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 属性来指定。FeedbackReply 内部主要记录如下信息:

  • content,反馈的文本内容
  • replyType,类型标识,表明是用户提交的,还是开发者回复的
  • attachment,反馈对应的附件信息

LCFeedbackThread

代表了用户与开发者的整个交流过程,与用户一一对应。一个用户只有一个 FeedbackThread,一个 FeedbackThread 包含多个 FeedbackReply。FeedbackThread 内部主要记录如下信息:

  • 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 中引入。设置如下,之后便可在真机和模拟器运行。

image

在我的项目中如何使用这一组件

为了调试方便,我们推荐大家直接把本项目的源代码加入自己工程来使用 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

  • 移除了 iOS 8 的 API +[UIImage imageNamed:inBundle:compatibleWithTraitCollection:],使得本项目最低支持 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

  • 发布