有用户问题我,什么时候推出像知乎 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 也支持同样的功能哦!
相关文章推荐