有用戶問題我,什么時候推出像知乎 iOS 客戶端那樣面向普通用戶的搖一搖反饋功能,其實通過 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 也支持同樣的功能哦!