有用戶(hù)問(wèn)題我,什么時(shí)候推出像知乎 iOS 客戶(hù)端那樣面向普通用戶(hù)的搖一搖反饋功能,其實(shí)通過(guò) Bugtags 的提供的接口完全可以自主實(shí)現(xiàn)這個(gè)功能,而且非常簡(jiǎn)單。
下圖是知乎 iOS 客戶(hù)端搖一搖后彈出的反饋提示

知乎用戶(hù)反饋
點(diǎn)擊遇到問(wèn)題,就會(huì)自動(dòng)截屏,然后用戶(hù)就可以提交問(wèn)題啦。
那么怎么通過(guò) Bugtags 來(lái)實(shí)現(xiàn)這樣的用戶(hù)反饋呢?這里就需要用到 Bugtags 的手動(dòng)調(diào)用接口:
/**
* 手動(dòng)調(diào)用截屏界面
* @return none
*/
+ (void)invoke;
我們只需獲取應(yīng)用的搖一搖事件,在事件回調(diào)中調(diào)用 [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:@"請(qǐng)問(wèn)需要反饋什么問(wèn)題?"
message:@"你也可以在個(gè)人頁(yè)的反饋幫助中心里找到這個(gè)功能"
delegate:self
cancelButtonTitle:@"沒(méi)啥事"
otherButtonTitles:@"遇到問(wèn)題", @"意見(jiàn)建議", @"關(guān)閉搖一搖反饋", 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 接口實(shí)現(xiàn)一個(gè)用戶(hù)反饋"];
return;
}
if (buttonIndex == 3) {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setBool:NO forKey:@"bugtags_shake_feedback_enabled"];
[prefs synchronize];
}
}
要在所有的 ViewController 里實(shí)現(xiàn)搖一搖,可將上述代碼放到您應(yīng)用 ViewController 的基類(lèi)里
然后在應(yīng)用的某個(gè)地方,比如在應(yīng)用的設(shè)置里,加一個(gè)開(kāi)關(guān)設(shè)置 NSUserDefaults 里的 bugtags_shake_feedback_enabled 來(lái)控制是否開(kāi)啟搖一搖反饋功能。
以下是我做的一個(gè) Demo,下載 Demo

搖一搖反饋
很簡(jiǎn)單吧?Bugtags Android SDK 也支持同樣的功能哦!