# SDK 集成指引

# 1、在 iOS 工程中集成 YachOpenSDK 静态库:

# 2、配置 LSApplicationQueriesSchemes:

在 Xcode 中,选择你的工程设置项,选中 “TARGETS” 一栏,在 “info” 标签栏的 “LSApplicationQueriesSchemes“ 添加 yach 和 yachopensdk,如下图所示:

图片

# 3、API 调用

(1)在 AppDelegate 文件中 import YachApi.h 头文件,并遵守 YachApiDelegate 协议,如下:

#import <UIKit/UIKit.h>
#import "YachApi.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate, YachApiDelegate>
@property (nonatomic, strong) UIWindow *window;
@end

(2)在 AppDelegate 的 didFinishLaunchingWithOptions 方法中注册 appId:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    [YachApi registerApp:APP_ID];
    
    return YES;
}

(3)重写 AppDelegate 的 openURL 方法

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
    return  [YachApi handleOpenURL:url delegate:self];
}

(4)开始授权登录

SendAuthReq *req = [[SendAuthReq alloc] init];
req.scope = SCOPE; // 字符串,必传,目前传 @"userinfo" 即可
req.state = STATE; // 字符串,可选,授权登录成功后,会原模原样传回,第三方应用根据需要决定是否使用
[YachApi sendReq:req];

(5)在 AppDelegate 中实现 onResp: 方法接收授权登录结果及相关数据:

#pragma mark - YachApiDelegate
- (void)onResp:(BaseResp *)resp {
    if ([resp isKindOfClass:[SendAuthResp class]]) {
        // 在这里,可以取到错误码(errCode)、临时票据(code)、state
    }
}

到这里,您就完成了授权登录 SDK 的集成。

【备注】iOS 授权登录 SDK 完整 API

/// 注册应用
/// @param appid 第三方应用在「知音楼」开放平台注册的 appid
+ (BOOL)registerApp:(NSString *)appid;
/// 向「知音楼」发起请求
/// @param req 请求内容
/// @return 成功 YES,失败 NO
+ (BOOL)sendReq:(BaseReq *)req;
/// 处理「知音楼」通过 URL 跳转回 App 时传递的数据
/// @param url 启动 App 的 URL
/// @param delegate YachApiDelegate 代理,用来接收「知音楼」回调的内容
/// @return 成功 YES,失败 NO
+ (BOOL)handleOpenURL:(NSURL *)url delegate:(id<YachApiDelegate>)delegate;
/// 打开「知音楼」,注意,这里仅仅是打开知音楼,如果想跳转到「知音楼」授权登录,请使用 sendReq: 方法
/// @return 打开成功 YES,失败 NO
+ (BOOL)openYachApp;
/// 当前设备是否已安装「知音楼」
+ (BOOL)isYachAppInstalled;
/// 当前设备安装的「知音楼」版本是否支持 OpenApi (可以用来判断设备当前安装的「知音楼」是否支持授权登录)
+ (BOOL)isYachAppSupportApi;
/// 获取「知音楼」下载链接
+ (NSString *)getYachAppInstallUrl;
/// 获取「知音楼」AppStore 链接
+ (NSString *)getYachAppStoreUrl;
/// 获取当前 SDK 版本号
+ (NSString *)getApiVersion;
/// 停止输出 Log(默认 SDK 会打印一些 log 便于开发中快速定位问题)
+ (void)stopLog;
/// 是否在必要情况下(如:当前设备未安装「知音楼」或已安装但版本过低)自动跳转到「知音楼」下载页(用系统浏览器打开)
/// @param autoRedirect 是否自动跳转,默认为 YES,传 NO 后,不会自动跳转到下载页
+ (void)autoRedirectToDownloadPage:(BOOL)autoRedirect;
上次更新: 12/7/2020, 4:14:08 PM
foo