感谢您的反馈!
写在前面:如果您在接入中有任何疑问,请参照文档“接入指南-服务模式”加入钉钉群和我们交流。
在这个集成教程中,我们使用已创建的Demo应用,向您展示如何快速地集成用户反馈组件功能。
一般地,您需要入驻成为开发者并且创建应用后,才能集成百川反馈功能并且发布您的App。
注意:
BCFeedback
目录直接拖入你的Xcode工程中。Copy items if needed
后,点击Finish。注意: 请确保你Copy过去的目录中包含YWFeedbackBundle.bundle
,以免造成返回箭头丢失的问题。
Cocoapods 安装完成后,在你的项目根目录创建一个 Podfile 文件,添加如下内容:
source 'http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git' source 'http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecsMirror.git' target 'YourTargetName' do pod 'YWFeedbackFMWK', '~> 2.0.3.1' end
在terminal下运行命令如下:
pod install
已安装旧版的,请运行( 不要用–no-repo-update选项):
pod update
命令执行完成后即可完成用户反馈SDK的下载安装。
注意: 目录中包含的身份图片yw_1222.jpg
不能被重命名。
注意: 在你正式发布应用之前,您务必需要使用自己申请的安全图片,并测试功能是否正常。现在,您可以暂时跳过这一步,以便快速的完成集成工作。您可以从以下链接中了解如何申请您自己的安全图片。
注意: 如果出现初始化失败的问题,请您检查一下,生成安全图片时所使用的appkey、bundle id是否和工程中的appkey、bundle id一致。
YWFeedbackKit依赖于这些系统库,您需要将他们添加到工程中:
注意: Cocoapods集成方式不需要手动添加依赖系统库
注意: 在Xcode7之前的版本,没有.tbd的库,而是.dylib
不知道如何添加系统库?
请参考:如何添加系统库
在Target->Linking->Other Linker Flags
中添加-ObjC
选项。
不知道如何修改编译选项?
请参考:如何修改编译选项
注意:请注意-ObjC
的大小写。
iOS 10 对隐私权限更加严格,需要添加权限说明(privacy description)。如果不做设置,可能会导致崩溃、审核不通过等情况。设置如下:
在info plist中增加字段:
<key>NSCameraUsageDescription</key> <string>访问相机</string> <key>NSPhotoLibraryUsageDescription</key> <string>访问相册</string>
配置完后如图所示:
注意: 上面的访问相机、访问相册可修改。
注意: 如果出现点击拍照、相册闪退的问题,请您检查一下,是否添加了权限说明。
引入头文件:
#import <YWFeedbackFMWK/YWFeedbackKit.h> #import <YWFeedbackFMWK/YWFeedbackViewController.h>
调用初始化方法:
/// @brief 初始化方法 /// @params anAppKey AppKey /// @return YWFeedbackKit实例 - (instancetype)initWithAppKey:(NSString *)anAppKey;
设置业务方扩展的反馈数据:
/// 业务方扩展反馈数据,可设置任意字段,在创建反馈页面前设置,可在后台扩展信息中查看 @property (nonatomic, strong, readwrite) NSDictionary *extInfo;
注意: 请不要将YWFeedbackKit实例设置为局部变量,请持有YWFeedback实例,以免被提前释放。
注意: 由于YWFeedbackKit是个宏,实际上是BCFeedbackKit,所以在Swift中,请使用BCFeedbackKit
。
更多参考:查看AppKey
调用YWFeedbackKit实例如下接口创建反馈界面:
/// @brief 创建反馈页面回调Block /// @params viewController 反馈页面 /// @return error 调用失败返回错误 typedef void (^YWMakeFeedbackViewControllerCompletionBlock) (YWFeedbackViewController * viewController, NSError *error); /// @brief 创建反馈页面,默认为不显示弹出错误信息 - (void)makeFeedbackViewControllerWithCompletionBlock:(YWMakeFeedbackViewControllerCompletionBlock)completionBlock;
创建成功后将会返回YWFeedbackViewController
,你可以根据你App的实际结构,使用Present等不同的方式将其展示。
如果不使用系统默认alert展示错误提示,或者想自行进行错误提示的多语言化,可以自定义提示方式,只需要实现这个block即可。具体可参考Demo。
/// @brief 反馈页面对外抛出Error的回调block。不设置此属性时,将使用默认Alert方式进行错误提示 /// @params viewController 反馈页面 /// @return error 失败error @property (nonatomic, copy) void (^YWFeedbackViewControllerErrorBlock) (YWFeedbackViewController *viewController, NSError *error);
调用如下接口获取未读数:
/// @brief 反馈未读消息数回调Block /// @params unreadCount 未读消息数 /// @return error 调用失败返回错误 typedef void (^YWGetUnreadCountCompletionBlock) (NSInteger unreadCount, NSError *error); /// @brief 请求反馈未读消息数 - (void)getUnreadCountWithCompletionBlock:(YWGetUnreadCountCompletionBlock)completionBlock;
调用成功后返回反馈未读数,如果返回有未读反馈消息,可在反馈入口添加未读数等方式提醒用户进行查看。
YWFeedbackViewController
,设置属性closeBlock
,当用户关闭用户反馈,将调用该block进行dismiss或pop。具体可参考Demo。 [viewController setCloseBlock:^(UIViewController *aParentController){ // 进行 dismiss 或者 pop,以及一些相关设置 [aParentController dismissViewControllerAnimated:YES completion:nil]; }];
与1.x版本不同的是,2.x版本在Mobile客户端配置页面进行配置。
注意: 上述接口在Demo中均有调用演示,建议下载Demo运行查看。
如果出现SGError
这种的,一般为安全图片的问题:
错误码 | 含义 |
---|---|
103 | 没有加-ObjC ,Category没有加载上来。 |
607 | 图片文件有问题。一般情况是生成图片时的bundle id和应用的bundle id不匹配 。 |
608 | 没有找到图片文件,请确保图片文件在项目目录下。 |
611 | 参数中的appkey在图片文件中找不到。一般情况是appkey与图片不匹配。 |