前言
公司最近要求集成阿里百川的意见反馈,以前没有集成过。网上的集成文章有些太过时了,而自己集成过程中也遇到一些坑,所以记录之。
官方的SDK集成文档链接https://helpcdn.aliyun.com/document_detail/53145.html?spm=a2c4g.11186623.6.558.42fc410f7Romn3。
当然如果认真按文档上来操作是很容易成功的。
用拖入工程的方式集成
由于公司工程比较老没有用pod集成,所以只能自己导入的方式。
下载官方的sdk
下载下来的OneSDK文件夹内容,拖入工程。
添加依赖库
libz.tbd
libresolv.tbd
libsqlite3.tbd
CoreMotion.framework
CoreTelephony.framework
SystemConfiguration.framework
Other Linker Flags
在 Target->Linking->Other Linker Flags中添加 -ObjC 选项。
(注意:一定要注意 -ObjC 的大小写!一定要注意 -ObjC 的大小写!一定要注意 -ObjC 的大小写!)
,我就在这里被坑了,当时看文档不仔细,自己手动敲上的 -Objc,以至于后面出现各种崩溃和获取配置失败问题!甚至后面自己写了正确的appkey,还报appkey错误。总之要认真,认真,认真。
添加相册相机权限
运用
#pragma mark getter 初始化SDK
- (YWFeedbackKit *)feedbackKit {
if (!_feedbackKit) {
_feedbackKit = [[YWFeedbackKit alloc] initWithAppKey:kAppKey appSecret:kAppSecret];
}
return _feedbackKit; // return YWFeedbackKit实例
}
/** 打开用户反馈页面 创建反馈页面,默认为不显示弹出错误信息*/
- (void)openFeedbackViewController {
// 初始化方式,或者参考下方的`- (YWFeedbackKit *)feedbackKit`方法。
// self.feedbackKit = [[YWFeedbackKit alloc] initWithAppKey:kAppKey];
/**
设置App自定义扩展反馈数据
业务方扩展反馈数据,可设置任意字段,在创建反馈页面前设置,可在后台扩展信息中查看
@property (nonatomic, strong, readwrite) NSDictionary *extInfo;
*/
self.feedbackKit.extInfo = @{@"loginTime":[[NSDate date] description],
@"visitPath":@"登陆->关于->反馈",
@"userid":@"yourid",
@"应用自定义扩展信息":@"开发者可以根据需要设置不同的自定义信息,方便在反馈系统中查看"};
__weak typeof(self) weakSelf = self;
/// @brief 创建反馈页面,默认为不显示弹出错误信息
/// - (void)makeFeedbackViewControllerWithCompletionBlock:(YWMakeFeedbackViewControllerCompletionBlock)completionBlock;
[self.feedbackKit makeFeedbackViewControllerWithCompletionBlock:^(YWFeedbackViewController *viewController, NSError *error) {
if (viewController != nil) {
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController];
[weakSelf presentViewController:nav animated:YES completion:nil];
// 关闭YWFeedbackView的block 进行 dismiss 或者 pop,以及一些相关设置
[viewController setCloseBlock:^(UIViewController *aParentController){
[aParentController dismissViewControllerAnimated:YES completion:nil];
}];
} else {
/** 使用自定义的方式抛出error时,此部分可以注释掉 */
// NSString *title = [error.userInfo objectForKey:@"msg"]?:@"接口调用失败,请保持网络通畅!";
// [[TWMessageBarManager sharedInstance] showMessageWithTitle:title description:nil type:TWMessageBarMessageTypeError];
}
}];
/** 使用自定义的方式抛出error */
// [self.feedbackKit setYWFeedbackViewControllerErrorBlock:^(YWFeedbackViewController *viewController, NSError *error) {
// NSString *title = [error.userInfo objectForKey:@"msg"]?:@"接口调用失败,请保持网络通畅!";
// [[TWMessageBarManager sharedInstance] showMessageWithTitle:title
// description:[NSString stringWithFormat:@"%ld", error.code]
// type:TWMessageBarMessageTypeError];
// }];
}
总结
集成sdk阅读文档一定要认真,不然出错了很浪费时间。调起的界面如下:
导航栏字体的颜色,可以登录阿里账号管理界面修改。