If your app supports over iOS9.0 and written in swift, you can use CTFeedbackSwift -
CTFeedback is a library to send feedback for iOS 6.0+.
CTFeedback is on CocoaPods. Simply add:
pod 'CTFeedback'
to your Podfile.
CTFeedbackViewController *feedbackViewController = [CTFeedbackViewController controllerWithTopics:CTFeedbackViewController.defaultTopics localizedTopics:CTFeedbackViewController.defaultLocalizedTopics];
feedbackViewController.toRecipients = @[@"ctfeedback@example.com"];
feedbackViewController.useHTML = NO;
[self.navigationController pushViewController:feedbackViewController animated:YES];
###Plaintext Email:
Device: iPhone 5s (GSM)
iOS: 7.0.4
App: CTFeedbackDemo
Version: 1.0.1
Build: 1.0.1
###HTML Email:
<tr><td>Device:</td><td><b>iPhone 5s (GSM)</b></td></tr> <tr><td>iOS:</td><td><b>7.0.4</b></td></tr> <tr><td>App:</td><td><b>CTFeedbackDemo</b></td></tr> <tr><td>Version:</td><td><b>1.0.1</b></td></tr> <tr><td>Build:</td><td><b>1.0.1</b></td></tr>
You also can use your own server API to send feedback. It can be useful if user has no E-mail account on device or else.
To use custom callback set
useCustomCallback
toYES
. If you want to let user input his E-mail, setshowUserEmail
toYES
.CTFeedbackViewController *feedbackViewController = [CTFeedbackViewController controllerWithTopics:CTFeedbackViewController.defaultTopics localizedTopics:CTFeedbackViewController.defaultLocalizedTopics]; feedbackViewController.showsUserEmail = YES; feedbackViewController.useCustomCallback = YES; feedbackViewController.delegate = self; [self.navigationController pushViewController:feedbackViewController animated:YES];
Also implement delegate function:
- (void)feedbackViewController:(CTFeedbackViewController *)controller didFinishWithCustomCallback:(NSString *)email topic:(NSString *)topic content:(NSString *)content attachment:(UIImage *)attachment
See demo for more details.
MIT license