前言
公司最近要求集成阿里百川的意見(jiàn)反饋,以前沒(méi)有集成過(guò)。網(wǎng)上的集成文章有些太過(guò)時(shí)了具滴,而自己集成過(guò)程中也遇到一些坑,所以記錄之师倔。
官方的SDK集成文檔鏈接https://helpcdn.aliyun.com/document_detail/53145.html?spm=a2c4g.11186623.6.558.42fc410f7Romn3构韵。
當(dāng)然如果認(rèn)真按文檔上來(lái)操作是很容易成功的。
用拖入工程的方式集成
由于公司工程比較老沒(méi)有用pod集成趋艘,所以只能自己導(dǎo)入的方式疲恢。
下載官方的sdk
下載下來(lái)的OneSDK文件夾內(nèi)容,拖入工程瓷胧。
添加依賴(lài)庫(kù)
libz.tbd
libresolv.tbd
libsqlite3.tbd
CoreMotion.framework
CoreTelephony.framework
SystemConfiguration.framework
Other Linker Flags
在 Target->Linking->Other Linker Flags中添加 -ObjC 選項(xiàng)显拳。
(注意:一定要注意 -ObjC 的大小寫(xiě)!一定要注意 -ObjC 的大小寫(xiě)搓萧!一定要注意 -ObjC 的大小寫(xiě)杂数!)
遇八,我就在這里被坑了,當(dāng)時(shí)看文檔不仔細(xì)耍休,自己手動(dòng)敲上的 -Objc,以至于后面出現(xiàn)各種崩潰和獲取配置失敗問(wèn)題刃永!甚至后面自己寫(xiě)了正確的appkey,還報(bào)appkey錯(cuò)誤羊精。總之要認(rèn)真斯够,認(rèn)真,認(rèn)真喧锦。
添加相冊(cè)相機(jī)權(quán)限
運(yùn)用
#pragma mark getter 初始化SDK
- (YWFeedbackKit *)feedbackKit {
if (!_feedbackKit) {
_feedbackKit = [[YWFeedbackKit alloc] initWithAppKey:kAppKey appSecret:kAppSecret];
}
return _feedbackKit; // return YWFeedbackKit實(shí)例
}
/** 打開(kāi)用戶(hù)反饋?lái)?yè)面 創(chuàng)建反饋?lái)?yè)面读规,默認(rèn)為不顯示彈出錯(cuò)誤信息*/
- (void)openFeedbackViewController {
// 初始化方式,或者參考下方的`- (YWFeedbackKit *)feedbackKit`方法。
// self.feedbackKit = [[YWFeedbackKit alloc] initWithAppKey:kAppKey];
/**
設(shè)置App自定義擴(kuò)展反饋數(shù)據(jù)
業(yè)務(wù)方擴(kuò)展反饋數(shù)據(jù)燃少,可設(shè)置任意字段束亏,在創(chuàng)建反饋?lái)?yè)面前設(shè)置,可在后臺(tái)擴(kuò)展信息中查看
@property (nonatomic, strong, readwrite) NSDictionary *extInfo;
*/
self.feedbackKit.extInfo = @{@"loginTime":[[NSDate date] description],
@"visitPath":@"登陸->關(guān)于->反饋",
@"userid":@"yourid",
@"應(yīng)用自定義擴(kuò)展信息":@"開(kāi)發(fā)者可以根據(jù)需要設(shè)置不同的自定義信息阵具,方便在反饋系統(tǒng)中查看"};
__weak typeof(self) weakSelf = self;
/// @brief 創(chuàng)建反饋?lái)?yè)面碍遍,默認(rèn)為不顯示彈出錯(cuò)誤信息
/// - (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];
// 關(guān)閉YWFeedbackView的block 進(jìn)行 dismiss 或者 pop,以及一些相關(guān)設(shè)置
[viewController setCloseBlock:^(UIViewController *aParentController){
[aParentController dismissViewControllerAnimated:YES completion:nil];
}];
} else {
/** 使用自定義的方式拋出error時(shí)阳液,此部分可以注釋掉 */
// NSString *title = [error.userInfo objectForKey:@"msg"]?:@"接口調(diào)用失敗怕敬,請(qǐng)保持網(wǎng)絡(luò)通暢!";
// [[TWMessageBarManager sharedInstance] showMessageWithTitle:title description:nil type:TWMessageBarMessageTypeError];
}
}];
/** 使用自定義的方式拋出error */
// [self.feedbackKit setYWFeedbackViewControllerErrorBlock:^(YWFeedbackViewController *viewController, NSError *error) {
// NSString *title = [error.userInfo objectForKey:@"msg"]?:@"接口調(diào)用失敗帘皿,請(qǐng)保持網(wǎng)絡(luò)通暢东跪!";
// [[TWMessageBarManager sharedInstance] showMessageWithTitle:title
// description:[NSString stringWithFormat:@"%ld", error.code]
// type:TWMessageBarMessageTypeError];
// }];
}
總結(jié)
集成sdk閱讀文檔一定要認(rèn)真,不然出錯(cuò)了很浪費(fèi)時(shí)間鹰溜。調(diào)起的界面如下:
導(dǎo)航欄字體的顏色虽填,可以登錄阿里賬號(hào)管理界面修改。