Bugtags 使用技巧之 实现全新的用户反馈功能

目录
  1. 1. Bugtags 使用技巧系列

有用户问题我,什么时候推出像知乎 iOS 客户端那样面向普通用户的摇一摇反馈功能,其实通过 Bugtags 的提供的接口完全可以自主实现这个功能,而且非常简单。

下图是知乎 iOS 客户端摇一摇后弹出的反馈提示

知乎用户反馈

点击遇到问题,就会自动截屏,然后用户就可以提交问题啦。

那么怎么通过 Bugtags 来实现这样的用户反馈呢?这里就需要用到 Bugtags 的手动调用接口:

1
2
3
4
5
/**
* 手动调用截屏界面
* @return none
*/

+ (void)invoke;

我们只需获取应用的摇一摇事件,在事件回调中调用 [Bugtags invoke] 即可,可参考以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if (motion == UIEventSubtypeMotionShake) {

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
BOOL enable = [prefs boolForKey:@"bugtags_shake_feedback_enabled"];
if (!enable) return;

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"请问需要反馈什么问题?"
message:@"你也可以在个人页的反馈帮助中心里找到这个功能"
delegate:self
cancelButtonTitle:@"没啥事"
otherButtonTitles:@"遇到问题", @"意见建议", @"关闭摇一摇反馈", nil];
[alertView show];
}
}

#pragma mark - UIAlertViewDelegate
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1) {

[Bugtags invoke];
return;
}

if (buttonIndex == 2) {

[Bugtags sendFeedback:@"也可以用 sendFeedback 接口实现一个用户反馈"];
return;
}

if (buttonIndex == 3) {

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setBool:NO forKey:@"bugtags_shake_feedback_enabled"];
[prefs synchronize];
}
}

要在所有的 ViewController 里实现摇一摇,可将上述代码放到您应用 ViewController 的基类里

然后在应用的某个地方,比如在应用的设置里,加一个开关设置 NSUserDefaults 里的 bugtags_shake_feedback_enabled 来控制是否开启摇一摇反馈功能。

以下是我做的一个 Demo,下载 Demo

摇一摇反馈

很简单吧?Bugtags Android SDK 也支持同样的功能哦!


Bugtags 使用技巧系列

相关文章推荐