//
|
// SMPCQuickSDK.h
|
//
|
//
|
//
|
//
|
#define SMPC_QUICK_SDK_VERSION @"2.4.6" //QuickSDK基础库版本
|
|
#import <Foundation/Foundation.h>
|
#import <UIKit/UIKit.h>
|
#import "SMPCQuickSDKDefines.h"
|
#import "SMPCQuickSDKInitConfigure.h"
|
#import "SMPCQuickSDKPayOrderInfo.h"
|
#import "SMPCQuickSDKGameRoleInfo.h"
|
#import "SMPCQuickSDKShareInfo.h"
|
|
|
#pragma mark 基本信息
|
|
@interface SMPCQuickSDK : NSObject
|
|
#pragma mark 单例对象
|
+ (SMPCQuickSDK *)defaultInstance;
|
|
#pragma mark 获取渠道基本信息
|
//获取渠道唯一标识,与服务器端channelID一致,任何时刻都可调用
|
- (int)channelType;
|
|
|
@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;
|
/**
|
@brief 调用渠道实名认证
|
@result 错误码若渠道没有提供此方法会返回非0
|
@note 结果会发送kSmpcQuickSDKNotiRealAuth通知
|
*/
|
- (int)realAuth;
|
#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<NSString*, id> *)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 <NSString *, id>*)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
|