全部产品

添加 iOS SDK

应用内反馈 SDK 提供了完整的用户反馈功能,包括提交反馈主题、查看反馈记录、查看反馈回复、回复反馈内容等。

本文将引导您在 基于 mPaaS 框架 的接入方式下,添加 反馈 SDK。

前置条件

您已参考 基于 mPaaS 框架接入,完成基础配置。

操作步骤

使用 mPaaS 插件,添加 反馈 组件 SDK,参见 mPaaS 插件 > 编辑模块

添加反馈组件 SDK

使用 SDK

启用组件

  1. 配置 userId。
    说明:未配置 userId 时只能使用提交反馈功能,配置 userId 之后可以使用 反馈 组件的全部功能。
    根据应用的账户体系,登录时,通过设置 MPaaSInterface 类中的 userId 来进行配置。
  2. 指定上传的用户昵称和头像。

    可通过实现 MPFeedbackDataSource协议中提供的接口来指定,头像图片内容大小上限为 100 KB。代码示例如下:

    说明:若不实现该接口,则在上传反馈时,将上传默认头像和昵称。

    1. - (id)userAvatar {
    2. return [UIImage imageNamed:@"DefaultAvatar"];
    3. }
    4. - (NSString *)userNickname {
    5. return @"mpaas-user";
    6. }
  3. 进入反馈页面。

    启用 反馈 组件,进入反馈页面,代码示例如下(可接受上报扩展参数):

    1. [[MPFeedbackInterface sharedInstance] startFeedbackWithExtParams:self.extParam delegate:self dataSource:self navigationController:self.navigationController];
  4. 处理回调。
    可通过实现 MPFeedbackDelegate 协议中提供的接口来处理退出反馈页面的事件,包括点击返回按钮退出反馈页面,提交反馈成功等。 代码示例如下:

    1. - (void)didCancelFeedback {
    2. // 反馈页面点击返回按钮
    3. }
    4. - (void)didSubmitFeedback {
    5. // 提交反馈成功
    6. }

获取新回复数量

  1. 调用 API,获取新回复的数量(异步过程),返回的数据会在回调的代理方法中传入,参见 获取新回复数量

    获取在 mPaaS 控制台侧对反馈的回复数量(参见 浏览反馈原声)。代码示例如下:

    1. [[MPFeedbackInterface sharedInstance] requestNewReplyWithDelegate:self];
  2. 处理回调。

    获取新回复数量操作结束时的返回事件,代码示例如下:

    1. - (void)didFinishNewReplayRequest:(BOOL)success result:(NSInteger)replyCount {
    2. if (success) {
    3. // 获取的新回复数量
    4. NSLog("New reply count: %ld", replyCount)
    5. }
    6. }
    说明replyCount 为实际获取到的新回复数量。

API 说明

反馈接口

反馈相关功能的统一入口,设置 userId 之后可以使用全部功能,未设置 userId 时只能使用提交反馈功能。

  1. @interface MPFeedbackInterface : NSObject
  2. @end

启用反馈组件

通过调用该接口,进入提交反馈的页面。

  • 接口定义

    1. - (void)startFeedbackWithExtParams:(nullable NSDictionary *)extParam
    2. delegate:(nullable id<MPFeedbackDelegate>)delegate
    3. dataSource:(nullable id<MPFeedbackDataSource>)dataSource
    4. navigationController:(UINavigationController *)navigationController;
  • 参数说明

    参数 是否必要 类型 说明
    extParam NSDictionary 提交反馈上传的业务扩展参数
    delegate id<MPFeedbackDelegate> 处理反馈相关的功能回调
    dataSource id<MPFeedbackDataSource> 提供反馈需要的业务数据
    navigationController UINavigationController 当前的页面导航栏控制器
  • 代码示例

    1. [[MPFeedbackInterface sharedInstance] startFeedbackWithExtParams:self.extParam delegate:self dataSource:self navigationController:self.navigationController];

获取新回复数量

通过调用该接口请求舆情中心,获取控制台侧的新回复数量。

  • 接口定义

    1. - (void)requestNewReplyWithDelegate:(id<MPFeedbackDelegate>)delegate;
  • 参数说明

    参数 是否必要 类型 说明
    delegate id <MPFeedbackDelegate> 获取新回复数量的回调代理
  • 代码示例

    1. [[MPFeedbackInterface sharedInstance] requestNewReplyWithDelegate:self];

反馈回调代理

处理反馈相关的回调事件。

  1. @protocol MPFeedbackDelegate <NSObject>
  2. @end

退出反馈页面

实现该接口,处理点击返回按钮退出反馈页面的事件。

  • 接口定义

    1. - (void)didCancelFeedback;

提交反馈成功

实现该接口,处理反馈提交成功的事件,反馈提交成功之后会退出反馈页面。

  • 接口定义

    1. - (void)didSubmitFeedback;

获取新回复数量

实现该接口,处理 获取新回复数量 的结果。

  • 接口定义

    1. - (void)didFinishNewReplayRequest:(BOOL)success result:(NSInteger)replyCount;
  • 参数说明

    参数 类型 说明
    success BOOL 获取新回复数量操作是否成功
    replyCount NSInteger 获取到的新回复数量

反馈数据源

提供反馈过程中的自定义数据。

  1. @protocol MPFeedbackDataSource <NSObject>
  2. @end

指定用户头像

实现该接口,指定上传反馈和回复反馈的用户头像。该接口返回的类型可以是图片 UIImage 类型或图片的地址 NSURL 类型。若返回 nil 或不实现该接口,则在上传反馈时,将上传默认头像。

说明上传头像的大小上限为 100 KB,若上传的图片大小超过该限制,将上传默认头像。
  • 接口定义
  1. - (id)userAvatar;

指定用户昵称

实现该接口,指定上传反馈和回复反馈的用户昵称。该接口返回的数据类型为 NSString。若返回 nil 或者不实现该方法,则在上传反馈时,将上传默认昵称。

  • 接口定义

    1. - (NSString *)userNickname;