Mobile Feedback SDK compliance guide (iOS)
In accordance with the Personal Information Protection Law, the Data Security Law, the Network Security Law, and other regulations, application developers and operators (developers) must respect and protect the personal information of end users. You must not illegally collect or use personal information when you provide network products and services. This guide helps you use the Mobile Feedback SDK in a compliant manner to meet personal information protection requirements and avoid infringing on the rights of end users.
1. System permissions requested by the Mobile Feedback SDK
Permission Details | Required | Purpose |
INTERNET | Yes | The basic permission that allows the SDK to connect to the network to report user feedback. |
CAMERA | No | To allow users to submit feedback. |
PHOTO | Yes | To allow users to submit feedback. |
RECORD_AUDIO | No | To allow users to submit feedback. |
2. Mobile Feedback SDK features and related personal information
Feature | Personal information fields collected | Purpose of collection | Configuration and example |
Basic Features | Network type, device information (including operating system and device model), and carrier | To submit feedback data, determine the network status, identify the feedback device, and record feedback content. | Not applicable |
3. Configuration for optional personal information fields in the Mobile Feedback SDK
Optional personal information fields | Purpose of collection | Configuration and example |
Not applicable | Not applicable | Not applicable |
4. Compliant initialization configuration for the Mobile Feedback SDK
/// @brief Initialization method
/// @params anAppKey The AppKey
/// @params anAppSecret The AppSecret
/// @return A YWFeedbackKit instance
- (instancetype)initWithAppKey:(NSString *)anAppKey appSecret:(NSString *)anAppSecret;
/// @brief Creates a feedback page. By default, pop-up error messages are not displayed.
- (void)makeFeedbackViewControllerWithCompletionBlock:(YWMakeFeedbackViewControllerCompletionBlock)completionBlock;You must call the YWFeedbackKit initialization method and the `[YWFeedbackKit makeFeedbackViewControllerWithCompletionBlock...]` method only after the end user agrees to the Privacy Policy.
Code example
NSString * appKey = @"xxxx";
NSString * appSecret = @"xxxx";
// Initialize the SDK.
self.feedbackKit = [[YWFeedbackKit alloc] initWithAppKey:kAppKey appSecret:kAppSecret];
/** Set custom extended feedback data for the application. */
self.feedbackKit.extInfo = @{@"loginTime":[[NSDate date] description],
@"visitPath":@"Logon->About->Feedback",
@"userid":@"yourid",
@"custom_app_extension_info":@"Developers can set custom information as needed for easy viewing in the feedback system."};
[self.feedbackKit makeFeedbackViewControllerWithCompletionBlock:^(YWFeedbackViewController *viewController, NSError *error) {
if (viewController != nil) {
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController];
[weakSelf presentViewController:nav animated:YES completion:nil];
[viewController setCloseBlock:^(UIViewController *aParentController){
[aParentController dismissViewControllerAnimated:YES completion:nil];
}];
} else {
/** If you use a custom method to throw an error, comment out this section. */
NSString *title = [error.userInfo objectForKey:@"msg"]?:@"API call failed. Please ensure a stable network connection.";
[[TWMessageBarManager sharedInstance] showMessageWithTitle:title
description:nil
type:TWMessageBarMessageTypeError];
}
}];