// // SMPCQuickSDK.h // // // // #define SMPC_QUICK_SDK_VERSION @"2.5.3" //QuickSDK基础库版本 #import #import #import "SMPCQuickSDKDefines.h" #import "SMPCQuickSDKInitConfigure.h" #import "SMPCQuickSDKPayOrderInfo.h" #import "SMPCQuickSDKGameRoleInfo.h" #import "SMPCQuickSDKShareInfo.h" typedef enum { QuickSDKUserTYPE_UNKnow = 0,//未知的未定义的 QuickSDKUserTYPE_Account = 1,//账号 QuickSDKUserTYPE_Phone = 2,//手机号 QuickSDKUserTYPE_Guest = 3,//游客登录 QuickSDKUserTYPE_WX = 4,//微信 QuickSDKUserTYPE_QQ = 5,//手Q QuickSDKUserTYPE_WeiBo = 6,//微博 QuickSDKUserTYPE_GameCenter = 7,//GameCenter QuickSDKUserTYPE_Apple = 16,//苹果 QuickSDKUserTYPE_OneKey = 18,//阿里云一键登录 } QuickSDKUserTYPE; #pragma mark 基本信息 @interface SMPCQuickSDK : NSObject #pragma mark 单例对象 + (SMPCQuickSDK *)defaultInstance; - (instancetype)init NS_UNAVAILABLE; + (instancetype)new NS_UNAVAILABLE; #pragma mark 获取渠道基本信息 //获取渠道唯一标识,与服务器端channelID一致,任何时刻都可调用 - (int)channelType; /** * 获取QuickGame渠道cps包的渠道号 */ - (NSString *)cpsChannelId; @end #pragma mark - 初始化 接入产品信息 @interface SMPCQuickSDK(Base) #pragma mark 初始化 /** @brief 应用初始化 完成后会发送通知kSmpcQuickSDKNotiInitDidFinished @param configure 初始化配置类,SDK会优先使用打包工具上在线配置的productCode @result 错误码 @note 必接 */ - (int)initWithConfig:(SMPCQuickSDKInitConfigure *)configure application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; /** @brief 调用组件功能,参数请看对应组件接入文档 */ - (int)callPlug:(NSString *)name params:(NSArray *)args; @end #pragma mark - 用户部分 登录 注册 登出 @interface SMPCQuickSDK(Account) /** @brief 登录接口 ,登录后会发送kSmpcQuickSDKNotiLogin通知 @result 错误码 @note 必接 */ - (int)login; /** @brief 登出接口 代码调用注销 @result 错误码 @note 成功调用该接口后,SDK会发出kSmpcQuickSDKNotiLogout通知 */ - (int)logout; // 登录后获取用户uid,这个uid在渠道上唯一,多个渠道的用户uid可能重复 - (NSString *)userId; // 登录后获取userToken可用于验证用户信息 - (NSString *)userToken; // 登录后获取用户昵称 - (NSString *)userNick; /** 查询渠道实名认证信息 */ - (NSDictionary *)realNameInfo; /** 获取设备id */ - (NSString *)getDeviceID; /** 清除设备id缓存数据 */ - (void)resetDeviceID; /** @brief 调用渠道实名认证 @result 错误码若渠道没有提供此方法会返回非0 @note 结果会发送kSmpcQuickSDKNotiRealAuth通知 */ - (int)realAuth; /** 获取渠道用户登录方式目前仅QuickGame越狱渠道有用 */ - (QuickSDKUserTYPE)getChannelUserLoginType; /** 获取用户额外信息,若没有额外信息则返回空字典 */ - (NSDictionary *)getChannelUserExtInfo; #pragma mark - 更新角色信息 // 进入游戏角色,角色信息变更时调用(比如升级),请使用updateRoleInfoWith:isCreate: - (void)updateRoleInfoWith:(SMPCQuickSDKGameRoleInfo *)info; //// 创建角色、进入游戏角色、角色信息变更时调用(比如升级,isCreate表示是否为创建角色 - (void)updateRoleInfoWith:(SMPCQuickSDKGameRoleInfo *)info isCreate:(BOOL)isCreate; @end //MARK:- 充值 @interface SMPCQuickSDK(Pay) /** @brief 商品购买 * @param orderInfo * @param roleInfo @result 错误码 */ - (int)payOrderInfo:(SMPCQuickSDKPayOrderInfo *)orderInfo roleInfo:(SMPCQuickSDKGameRoleInfo *)roleInfo; /** @brief 商品信息 * @param productId 商品id */ -(void)Getlocalized:(NSString *)productIds; @end #pragma mark - 界面控制 @interface SMPCQuickSDK(UISetting) #pragma mark 浮动条 /** @brief showToolBar: @brief 浮动工具栏,建议显示在左上角 @result 错误码 @note */ - (int)showToolBar:(SMPC_QUICK_SDK_TOOLBAR_PLACE)place; //隐藏浮动工具栏 - (int)hideToolBar; @end @interface SMPCQuickSDK(Extend) // 获取QuicSDK后台为渠道添加的自定义键值,任何时刻都可调用 // 如果没有将返回nil - (NSString *)getConfigValue:(NSString *)key; /** @brief isFunctionSupported: @brief 判断当前渠道是否实现了QuickSDK提供的某个接口 @brief 如果当前渠道没有实现相应接口,就没有相应接口的回调 @brief 例如渠道SDK没有实现pausedGame这个接口,即使调用了pausedGame,没有暂停恢复通知,因为pausedGame调用无效 @result 是否 @note */ - (BOOL)isFunctionTypeSupported:(SMPC_QUICK_SDK_FUNC_TYPE)type; /** @brief 进入用户中心 如用户注销登录会发送kSmpcQPLogoutNotification(可多次触发) @result 错误码 */ - (int)enterUserCenter; /** 进入YunKefu @param gameRoleInfo @result 错误码 */ - (int)enterYunKeFuCenter:(SMPCQuickSDKGameRoleInfo *)gameRoleInfo; #pragma mark 分享 /** 分享 @param shareInfo shareInfo description @result 错误码 */ - (int)callSDKShare:(SMPCQuickSDKShareInfo *)shareInfo; //***********************应用生命周期的回调*******************// //在应用对应的生命周期回调中调用 /** @brief - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url; @brief - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation @brief - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options @brief 渠道处理应用跳转 @result 错误码 @note 必接 */ - (int)openURL:(NSURL *)url application:(UIApplication *)application; - (int)openURL:(NSURL *)url sourceApplication:(NSString *)sourceApp application:(UIApplication *)application annotation:(id)annotation; - (int)openURL:(NSURL *)url application:(UIApplication *)app options:(NSDictionary *)options; /** @brief application:didRegisterForRemoteNotificationsWithDeviceToken: @brief 推送消息 @result 错误码 @note 必接 */ - (int)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken; /** @brief application:didFailToRegisterForRemoteNotificationsWithError: @brief 推送消息 @result 错误码 @note 必接 */ - (int)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error; - (int)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo; - (int)applicationWillResignActive:(UIApplication *)application; - (int)applicationDidEnterBackground:(UIApplication *)application; - (int)applicationWillEnterForeground:(UIApplication *)application; - (int)applicationDidBecomeActive:(UIApplication *)application; - (int)applicationWillTerminate:(UIApplication *)application; - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window; - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * restorableObjects))restorationHandler; @end