GitYourFeedback 0.1.1

GitYourFeedback 0.1.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年11月
SwiftSwift 版本3.0
SPM支持 SPM

Gabe Kangas 维护。



 
依赖项
GRMustache.swift>= 0
CLImageEditor>= 0
CLImageEditor/TextTool>= 0
 


GitYourFeedback

许多组织在 GitHub 上运营,不仅用于代码仓库,而且还大量使用 Issues、问题追踪/反馈报告工具。不是将用户路由到 GitHub 并期望他们提交问题,这个选项可以直接从您的 iOS 应用程序内部支持它。

示例

要运行示例项目

  • 克隆仓库,然后从 Example 目录运行 pod install
  • 编辑 Config.swift 并添加您的 GitHub 详细信息(用户、API 密钥、仓库)以及 Google Cloud Storage 存储桶名称。
  • 必须是一个公开可访问的 Google Cloud Storage 存储桶,因为需要上传和读取文件的权限。
  • 在设备上运行项目并截图,或在模拟器中按按钮以显示反馈界面。

客户端看起来像

Screenshot

而生成的 GitHub 问题将看起来像

Screenshot

要求

  • 用于存储截图的 Google Cloud Storage 存储桶。
  • 用于存储问题的 GitHub 仓库。

依赖项

  • 如果您通过 Cocoapods 安装,这些依赖项由您处理,因为它们在 Podspec 中列出。
  • CLImageEditor 用于在截图后编辑截图。这可以用于擦除个人信息或强调特定项目。
  • GRMustache 用于启用在 issueTemplate.md 中使用的 Mustache 模板。它允许无需代码即可迭代实际问题内容。

安装

GitYourFeedback 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 。

pod "GitYourFeedback"

或者,如果您正在使用 Carthage,将 GitYourFeedback 添加到您的 Cartfile。

github “gabek/GitYourFeedback”

  1. 为将问题保存到您仓库的 GitHub 用户生成一个 个人访问令牌

  2. 在您的项目的 Info.plist 文件中添加一个键 NSPhotoLibraryUsageDescription,并输入一个字符串说明您使用照片库是为了提交截图。这是面向用户的,因此请自行判断。

  3. 创建一个 FeedbackReportingOptions 对象并填写属性。就像这样

let feedbackOptions = FeedbackReportingOptions(token: "abc123", user: "repoman", repo: "repoman/myRepository")

或者,您可以创建自己的结构体,这个结构体遵循 FeedbackOptions 协议,并使用它。这样,您不需要将所有初始化值都放在一行中。

  1. 在您的 AppDelegate 或其他长期存在的控制器中
let feedbackReporter = FeedbackReporter(options: feedbackOptions)

您还需要实现 FeedbackReporterDatasource,以便向 FeedbackReporter 设定上传截图的位置。最简单的实现可能是这样的

func uploadUrl(_ completionHandler: (String) -> Void) {
    let filename = String(Date().timeIntervalSince1970) + ".jpg"
    let url = "https://www.googleapis.com/upload/storage/v1/b/mybucketname.appspot.com/o?name=\(filename)"
    completionHandler(url)
}

您也可以实现其他方法,以在提交的问题中提供更多信息。

func additionalData() -> String?
func issueLabels() -> [String]?

这里您还可以生成一个签名 URL,可能来自您的后端,这样 Google Cloud Storage 存储桶就不需要是完全公开的。

显示反馈界面

当用户在您的应用中截屏时,界面将自动显示。如果这是用户在您的应用中第一次截屏,他们将看到一个 iOS 权限对话框,指出为了使用截图他们需要允许您的应用访问他们的“照片”。您可能需要强调用户应接受这一请求。它使用您在 Info.plist 文件的 NSPhotoLibraryUsageDescription 键中添加的文本。

您还可以手动调用 feedback.display() 并可选地指定要从中呈现的特定视图控制器。使用这种方法,如果用户想发送一个截图,他们将必须手动选择。

Demo

作者

Gabe Kangas, [email protected]. @gabek

图标来自:由 Madebyoliver 设计,来自 Flaticon。

许可

GitYourFeedback 在 MIT 许可证 下提供。有关更多信息,请参阅 LICENSE 文件。