有用戶問(wèn)題我,什么時(shí)候推出像知乎 iOS 客戶端那樣面向普通用戶的搖一搖反饋功能表箭,其實(shí)通過(guò) Bugtags 的提供的接口完全可以自主實(shí)現(xiàn)這個(gè)功能求橄,而且非常簡(jiǎn)單。
下圖是知乎 iOS 客戶端搖一搖后彈出的反饋提示
點(diǎn)擊遇到問(wèn)題牙寞,就會(huì)自動(dòng)截屏饺鹃,然后用戶就可以提交問(wèn)題啦。
那么怎么通過(guò) Bugtags 來(lái)實(shí)現(xiàn)這樣的用戶反饋呢间雀?這里就需要用到 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:@"沒啥事"
otherButtonTitles:@"遇到問(wè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è)用戶反饋"];
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
的基類里
然后在應(yīng)用的某個(gè)地方,比如在應(yīng)用的設(shè)置里连锯,加一個(gè)開關(guān)設(shè)置 NSUserDefaults
里的 bugtags_shake_feedback_enabled
來(lái)控制是否開啟搖一搖反饋
功能归苍。
以下是我做的一個(gè) Demo,下載 Demo
很簡(jiǎn)單吧运怖?Bugtags Android SDK 也支持同樣的功能哦拼弃!