Critic 0.1.5

Critic 0.1.5

Dave Lane 维护。



 
依赖
SystemServices~> 2.0.1
UITextView+Placeholder~> 1.2
 

Critic 0.1.5

Version License Platform

Inventiv Critic iOS库

使用这个库将 Inventiv Critic 添加到您的iOS应用中。

Critic iOS feedback reporting screen

示例

要运行示例项目,先克隆仓库,然后在Example目录中运行 pod install

安装

  1. 将Critic pod添加到您的 Podfile
pod 'Critic'
  1. Critic Web Portal 中查看您产品的详细信息以找到您的产品访问令牌。
  2. 通过在 AppDelegate 中启动Critic来初始化Critic。
// Swift
Critic.instance().start("YOUR_PRODUCT_ACCESS_TOKEN")
// Objective-C
[[Critic instance] start:@"YOUR_PRODUCT_ACCESS_TOKEN"];

配置

摇动发送反馈报告

默认情况下,当用户摇晃设备时,Critic 将会提示他们进行反馈。如果需要,您可以禁用此功能。

// Swift
Critic.instance().preventShakeDetection()
// Objective-C
[[Critic instance] preventShakeDetection];

日志捕获

默认情况下,未连接到调试会话的设备将控制台输出(stderrstdout)定向到日志文件,该文件包含在提交的报告中。您可以在开始 Critic 之前禁用此行为。

// Swift
Critic.instance().preventLogCapture()
// Objective-C
[[Critic instance] preventLogCapture];

如果您正在运行模拟器并希望建立控制台日志,您可以直接启动日志捕获。

// Swift
Critic.instance().startLogCapture()
// Objective-C
[[Critic instance] startLogCapture];

发送客户反馈报告

您可以通过从 UIViewController 调用以下方法来显示默认反馈报告屏幕。

// Swift
Critic.instance().showDefaultFeedbackScreen(self)
// Objective-C
[[Critic instance] showDefaultFeedbackScreen:self];

在默认反馈屏幕上更改文本。

默认反馈报告屏幕和摇晃检测对话框上的文本可以根据您的喜好进行自定义。

// Swift
Critic.instance().setDefaultShakeNotificationTitle("Easy, easy!")
Critic.instance().setDefaultShakeNotificationMessage("Do you want to send us feedback?")

Critic.instance().setDefaultFeedbackScreenTitle("Submit Feedback")
Critic.instance().setDefaultFeedbackScreenDescriptionPlaceholder("What's happening?\n\nPlease describe your problem or suggestion in as much detail as possible. Thank you for helping us out! 🙂");
// Objective-C
[[Critic instance] setDefaultShakeNotificationTitle:@"Easy, easy!"];
[[Critic instance] setDefaultShakeNotificationMessage:@"Do you want to send us feedback?"];

[[Critic instance] setDefaultFeedbackScreenTitle:@"Submit Feedback"];
[[Critic instance] setDefaultFeedbackScreenDescriptionPlaceholder:@"What's happening?\n\nPlease describe your problem or suggestion in as much detail as possible. Thank you for helping us out! 🙂"];

在报告中发送产品特定元数据

您可以通过向 Critic.instance().productMetadata 字典添加条目来添加产品特定元数据。

// Swift
Critic.instance().productMetadata["email"] = "[email protected]"
// Objective-C
[[[Critic instance] productMetadata] setObject:@"[email protected]" forKey:@"email"];

发送设备特定元数据

您可以通过向 Critic.instance().deviceMetadata 字典添加条目来添加设备特定元数据。

// Swift
Critic.instance().deviceMetadata["device_uuid"] = "abc123"
// Objective-C
[[[Critic instance] deviceMetadata] setObject:@"abc123" forKey:@"device_uuid"];

如果您希望通过每次设备ping包含元数据,请在调用 Critic.instance().start() 之前设置好元数据值。在启动后添加的元数据将只添加到错误报告提交中。

自定义反馈报告

使用 NVCReportCreator 构建您自己的报告,以用于自定义用户体验或其他用例。在后台线程上执行 NVCReportCreator 工作。

// Swift
let reportCreator = NVCReportCreator()
reportCreator.description = "This is user-entered text about the idea or experience they wish to report."
reportCreator.metadata["Whatever key you want"] = "Whatever value you want"
reportCreator.attachmentFilePaths.add("/absolute/path/to/desired/file.txt")
reportCreator.create({(success: Bool, error: Error?) in
    if success {
        NSLog("Feedback has been submitted!")
    }
    else {
        NSLog("Feedback submission failed.")
    }
})
// Objective-C
NVCReportCreator *reportCreator = [NVCReportCreator new];
reportCreator.description = @"This is user-entered text about the idea or experience they wish to report.";
[report.metadata setObject:@"Whatever value you like" forKey:@"Whatever key you want"];
[report.attachmentFilePaths addObject:@"/absolute/path/to/desired/file.txt"];
[reportCreator create:^(BOOL success, NSError *error){
    if(success){
        NSLog(@"Feedback has been submitted!");
    } else {
        NSLog(@"Feedback submission failed.");
    }
}];

查看反馈报告

访问Critic网络门户查看提交的报告。以下是一些每个iOS报告包含的设备和应用程序信息。

Critic iOS app info as view in the web portal Critic iOS device info as view in the web portal

许可证

本项目采用MIT许可证发布。