日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

iOS SDK接入

更新時(shí)間:

前言

本章節(jié)介紹移動(dòng)用戶反饋 iOS SDK的接入方法。

  • 推薦工程使用cocoapods管理依賴。

  • 當(dāng)前SDK最新版本支持iOS Deployment Target 7.0及以上。

  • 用戶反饋SDK支持 bitcode(bitcode僅在 Xcode7及以上顯示并默認(rèn)開啟)。

  • 用戶反饋SDK及其依賴庫均使用HTTPS協(xié)議進(jìn)行加密傳輸。

準(zhǔn)備工作

第一步 將SDK集成到您的應(yīng)用

我們提供了cocoapods引入依賴和本地依賴兩種集成方式,方便您根據(jù)需要將SDK添加到您的應(yīng)用中。

1. cocoapods引入依賴

1.1 指定Master倉庫和阿里云倉庫

移動(dòng)用戶反饋 iOS SDK和其他EMAS產(chǎn)品的iOS SDK,都是發(fā)布到阿里云EMAS官方維護(hù)的github倉庫中,因此,您需要在您的Podfile文件中包含該倉庫地址。

source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/aliyun/aliyun-specs.git'

1.2 添加依賴

為您需要依賴HTTPDNS iOS SDK的target添加如下依賴。

target 'yourProjetName' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!
  pod 'AlicloudFeedback', 'x.x.x'
end
重要

示例依賴中的SDK版本號(hào)請(qǐng)以發(fā)布說明文檔中的最新版本號(hào)為準(zhǔn)。

1.3 安裝依賴

在您的Terminal中進(jìn)入Podfile所在目錄,執(zhí)行以下命令安裝依賴。

pod install --repo-update
重要

安裝完成后,注意使用.xcworkspace文件重新打開工程。

2. 本地手動(dòng)集成依賴

2.1 下載依賴文件

EMAS SDK列表選擇移動(dòng)用戶反饋 iOS版本進(jìn)行下載,解壓得到多個(gè)framework文件,如圖示。

文件.png

2.2 將framework文件添加到工程中

Finder中選中上述文件,拖入需要使用移動(dòng)用戶反饋 iOS SDK的target下,并在彈出框中勾選Copy items if needed

image

如果遇到 UTDID 沖突可參考:阿里云-云產(chǎn)品SDK UTDID沖突解決方案

重要

確認(rèn)目的目錄中包含YWFeedbackBundle.bundle,以免造成返回箭頭丟失的問題。

2.3 添加系統(tǒng)庫依賴

在工程項(xiàng)目中(Build Phases -> Link Binary With Libraries)添加以下庫依賴。

libz.tbd
libresolv.tbd
libsqlite3.tbd
CoreMotion.framework
CoreTelephony.framework
SystemConfiguration.framework
重要

在Xcode7之前的版本,沒有.tbd的庫,而是.dylib

最終效果如圖示。

yinru.png

2.4 ObjC配置

iOS端集成SDK時(shí)需要做-ObjC配置,即應(yīng)用的 TARGETS -> Build Settings -> Linking -> Other Linker Flags ,需添加上 -ObjC 這個(gè)屬性,如圖示。

image.png

重要

請(qǐng)注意 -ObjC的大小寫。

第二步 設(shè)置隱私權(quán)限

iOS 10及其以上版本對(duì)隱私權(quán)限更加嚴(yán)格,需要添加權(quán)限說明(privacy description)。如果不做設(shè)置,可能會(huì)導(dǎo)致崩潰、審核不通過等情況。設(shè)置如下:

在info plist中增加字段:

<key>NSCameraUsageDescription</key>
<string>使用相機(jī)</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>使用相冊(cè)</string>
<key>NSMicrophoneUsageDescription</key>
<string>使用麥克風(fēng)</string>

配置完后如圖所示:

權(quán)限.png

重要

  • 上圖中的使用相機(jī)/使用相冊(cè)/使用麥克風(fēng)可修改。

  • 如出現(xiàn)點(diǎn)擊錄音、拍照、相冊(cè)閃退的情況,確認(rèn)是否已添加權(quán)限說明。

第三步 使用SDK

1.初始化SDK

在需要使用移動(dòng)用戶反饋的代碼文件中引入頭文件。

#import <YWFeedbackFMWK/YWFeedbackKit.h> 
#import <YWFeedbackFMWK/YWFeedbackViewController.h>

調(diào)用初始化方法:(AppKey和AppSecret請(qǐng)?jiān)诳刂婆_(tái)-應(yīng)用管理頁面獲取)

/// @brief 初始化方法
/// @params anAppKey AppKey
/// @params anAppSecret AppSecret
/// @return YWFeedbackKit實(shí)例
- (instancetype)initWithAppKey:(NSString *)anAppKey appSecret:(NSString *)anAppSecret;

YWFeedbackKit *feedbackKit = [[YWFeedbackKit alloc] initWithAppKey:kAppKey appSecret:kAppSecret];
重要
  • 不要將YWFeedbackKit實(shí)例設(shè)置為局部變量,請(qǐng)持有YWFeedback實(shí)例,以免被提前釋放。

  • 由于YWFeedbackKit是個(gè)宏,實(shí)際上是BCFeedbackKit,所以在Swift中,請(qǐng)使用BCFeedbackKit。

2.打開反饋頁面

  • 調(diào)用 YWFeedbackKit 實(shí)例如下接口創(chuàng)建反饋界面:

/// @brief 創(chuàng)建反饋頁面回調(diào)Block
/// @params viewController 反饋頁面
/// @return error 調(diào)用失敗返回錯(cuò)誤
typedef void (^YWMakeFeedbackViewControllerCompletionBlock) (YWFeedbackViewController * viewController, NSError *error);
/// @brief 創(chuàng)建反饋頁面,默認(rèn)為不顯示彈出錯(cuò)誤信息
- (void)makeFeedbackViewControllerWithCompletionBlock:(YWMakeFeedbackViewControllerCompletionBlock)completionBlock;
  • 創(chuàng)建成功后將會(huì)返回YWFeedbackViewController,你可以根據(jù)你App的實(shí)際結(jié)構(gòu),使用Present等不同的方式將其展示。

  • 如果不使用系統(tǒng)默認(rèn)alert展示錯(cuò)誤提示,或者想自行進(jìn)行錯(cuò)誤提示的多語言化,可以自定義提示方式,只需要實(shí)現(xiàn)這個(gè)block即可。具體可參考Demo

/// @brief 反饋頁面對(duì)外拋出Error的回調(diào)block。不設(shè)置此屬性時(shí),將使用默認(rèn)Alert方式進(jìn)行錯(cuò)誤提示
/// @params viewController 反饋頁面
/// @return error 失敗error
@property (nonatomic, copy) void (^YWFeedbackViewControllerErrorBlock) (YWFeedbackViewController *viewController, NSError *error);

3.關(guān)閉用戶反饋頁面

在成功執(zhí)行打開反饋頁面后將獲取到Y(jié)WFeedbackViewController,設(shè)置屬性closeBlock,當(dāng)用戶關(guān)閉用戶反饋,將調(diào)用該block進(jìn)行dismiss或pop。具體可參考 Demo

[viewController setCloseBlock:^(UIViewController *aParentController){
    // 進(jìn)行 dismiss 或者 pop,以及一些相關(guān)設(shè)置
    [aParentController dismissViewControllerAnimated:YES completion:nil];
}];

4.獲取反饋未讀消息數(shù)

調(diào)用如下接口獲取未讀消息數(shù):

/// @brief 反饋未讀消息數(shù)回調(diào)Block
/// @params unreadCount 未讀消息數(shù)
/// @return error 調(diào)用失敗返回錯(cuò)誤
typedef void (^YWGetUnreadCountCompletionBlock) (NSInteger unreadCount, NSError *error);
/// @brief 請(qǐng)求反饋未讀消息數(shù)
- (void)getUnreadCountWithCompletionBlock:(YWGetUnreadCountCompletionBlock)completionBlock;

調(diào)用成功后返回反饋未讀數(shù),如果返回有未讀反饋消息,可在反饋入口添加未讀數(shù)等方式提醒用戶進(jìn)行查看。

5.設(shè)置業(yè)務(wù)方擴(kuò)展的反饋信息和用戶昵稱(可選配置)

移動(dòng)用戶反饋SDK初始化后,可根據(jù)需要設(shè)置業(yè)務(wù)方擴(kuò)展的反饋數(shù)據(jù):

/// 業(yè)務(wù)方擴(kuò)展反饋數(shù)據(jù),可設(shè)置任意字段,在創(chuàng)建反饋頁面前設(shè)置,可在后臺(tái)擴(kuò)展信息中查看
@property (nonatomic, strong, readwrite) NSDictionary *extInfo;

self.feedbackKit.extInfo = @{***:***};

設(shè)置用戶昵稱后,用戶反饋信息時(shí)攜帶該昵稱,最終會(huì)在反饋控制臺(tái)會(huì)話中顯示。

v3.3.5版本及以后可用。

/**
 設(shè)置反饋用戶名,請(qǐng)于SDK初始化完成后,在創(chuàng)建反饋頁面前設(shè)置
 (該用戶名,可以在移動(dòng)反饋控制臺(tái)反饋會(huì)話中查看,用于標(biāo)識(shí)用戶)
 @param nickName 反饋用戶名
 */
- (void)setUserNick:(NSString *)nickName;

[self.feedbackKit setNickName:@"***"];

6.自定義UI

從v3.1.0版本開始增加了自定義UI的接口,包括導(dǎo)航欄字體、導(dǎo)航欄返回按鈕的圖標(biāo)。

修改導(dǎo)航欄字體的API如下:

//YWFeedbackKit.h 

/// @brief 如果不設(shè)置,默認(rèn)為:`[UIFont boldSystemFontOfSize:13]`
@property (nonatomic, strong) UIFont *defaultCloseButtonTitleFont;

/// @brief 如果不設(shè)置,默認(rèn)為:`[UIFont boldSystemFontOfSize:13]`
@property (nonatomic, strong) UIFont *defaultRightBarButtonItemTitleFont;

修改導(dǎo)航欄返回按鈕圖標(biāo)的具體方法如下:

如果是手動(dòng)集成,直接修改YWFeedbackBundle.bundle里的圖片即可,如果是通過CocoaPods方式集成,那么需要將YWFeedbackBundle.bundle命名為Customized.YWFeedbackBundle.bundle,并修改Customized.YWFeedbackBundle.bundle內(nèi)部的圖片,然后拖拽到您自己的工程項(xiàng)目中即可。

SDK Demo

移動(dòng)用戶反饋 iOS SDK接入工程樣例參見Demo

常見錯(cuò)誤碼

錯(cuò)誤碼

含義

103

沒有加-ObjC,Category沒有加載上來。