Bugtags 教你轻松在 App 中实现用户反馈功能

2016-07-21 09:48:52 +08:00
 bxml

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

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

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

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

/**
 * 手动调用截屏界面
 * @return none
 */
+ (void)invoke;

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


- (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 也支持同样的功能哦!

2696 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/293850

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX