Mobile Feedback SDK compliance guide (iOS)

Updated at:
Note

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;
Important
  • 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];
    }
    }];