接入智能教练SDK及参数设置
简要描述
主要协助第三方App接入智能教练SDK,并且设置相应参数的功能代码示例;
主要内容
引入方式:
智能教练SDK以framework框架的方式接入,将framework文件夹拖入工程,并设置Embed & Sign。
设置工程info.plist权限:
相机权限:NSCameraUsageDescription
麦克风权限:NSMicrophoneUsageDescription
图库权限:NSPhotoLibraryUsageDescription
关闭bitcode设置:

#import "PHAISparring/PHAISparring.h"- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// 创建配置PHAISparringConfig *config = [[PHAISparringConfig alloc] init];// 开发环境,测试config.environment = PHAISparringEnvironmentDebug;// 初始化SDK[PHAISparring initializeWithConfig:config];return YES;}
#import "PHAISparring/PHAISparringManager.h"- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {NSLog(@"url = %@",navigationAction.request.URL.absoluteString.stringByRemovingPercentEncoding);// 判断是否为云学堂智能陪练业务协议if ([navigationAction.request.URL.absoluteString hasPrefix:@"yxtapp://biz.sparring"]) {// 解析协议参数NSDictionary *dic = [self getSparringCodeProtocolUrl:navigationAction.request.URL];NSString *name = dic[@"name"];NSString *code = dic[@"code"];NSString *isPreview = dic[@"isPreview"];// 处理是否预览if (isPreview) {PHAISparring.isPreview = [isPreview boolValue];} else {PHAISparring.isPreview = NO;}if ([name isEqualToString:@"yxt_app_sparring_start"]) {// 开始训练[PHAISparring startWithCode:code sender:self];}else if ([name isEqualToString:@"yxt_app_sparring_open"]) {// 进入智能陪练H5页面[PHAISparring openPageWithCode:code sender:self];}decisionHandler(WKNavigationActionPolicyCancel);return;}decisionHandler(WKNavigationActionPolicyAllow);}/// 解析协议参数/// @param url 协议地址- (NSDictionary *)getSparringCodeProtocolUrl:(NSURL *)url {NSString *paramStr = [[[url.query componentsSeparatedByString:@"&"] firstObject] stringByReplacingOccurrencesOfString:@"param=" withString:@""].stringByRemovingPercentEncoding;NSDictionary *paramDic = [NSJSONSerialization JSONObjectWithData:[paramStr dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:nil];return paramDic;}
// PHAISparringManager.h@interface PHAISparring : NSObject/// 初始化配置/// @param config 配置模型+ (void)initializeWithConfig:(PHAISparringConfig *)config;/// 开始训练+ (void)startWithCode:(NSString *)code sender:(UIViewController *)sender;/// 结束训练+ (void)stopWithCompletion:(void (^ __nullable)(void))completion;/// 打开智能陪练h5页面+ (void)openPageWithCode:(NSString *)code sender:(UIViewController *)sender;@end