pod安装
SDK集成需安装cocoapods
注意安装完成后, 需要在终端 执⾏ pod setup, 要下载几百兆个样子, 比较久
pod setup
开始集成CWSDK(为方便脚本混淆代码, 更改过类名, 现在SDK名字是CMKOASDK)
以CWSDKDemo工程为例:
-
注意:⼯程最低⽀持版本为9.0
image.png
-
将CWSDK.zip解压放到⼯程平级目录
page1image7167088.png - 切换到CWSDKDemo目录(左边), 终端执行
pod init
目录会多出Podfile文件, 编辑Podfile
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
use_frameworks!
target 'Unity-iPhone' do
pod 'CMKOASDK', :path => '../'
end
- 终端继续执行
pod update
-
打开后缀为.xcworkspace的项目文件(不要点开.xcodeproj, 否则会报错)
打开这个项目 -
在main函数中找到添加头文件的类
image.png -
添加头文件
#import <CMKOASDK/CMKOASDK.h>
- 添加CWSDK实现代码
#pragma mark - UIApplicationDelegate
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
[[CMKOASDK sharedInstance] application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
[[CMKOASDK sharedInstance] application:application didFailToRegisterForRemoteNotificationsWithError:error];
}
- (BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary<NSString*, id>*)options
{
[[CMKOASDK sharedInstance] application:app openURL:url options:options];
return YES;
}
-
设置代理(重要)
[[CMKOASDK sharedInstance] setDelegate:self];
- 必须实现的代理的两个方法
// 返回当前显示控制器的View
- (UIView*)cmkoa_currentView;
// 返回当前显示的控制器
- (UIViewController*)cmkoa_currentViewController;
- 登录
[[CMKOASDK sharedInstance] login];
// SDK登录成功回调, 数据包含在notification.userInfo中
- (void)OnUserLogin:(NSNotification *)notification
{
NSLog(@"Login userInfo: %@", notification.userInfo);
// 游戏登录逻辑
}
-
userInfo中的数据如下框框内(取userID, token字段)
image.png -
退出登录, SDK账号绑定页有退出当前账号入口
// SDK登出回调
- (void)OnUserLogout:(NSNotification *)notification {
// 需调用游戏退出登录逻辑, 到sdk登录界面
}
- 如果游戏也有退出当前账号入口, 则需调用SDK退出登录逻辑(方法名仅供参考), 否则无视这条
- (void)U3D_logout {
// 调用SDK退出登录
[[CMKOASDK sharedInstance] logout];
}
- 角色信息上报(方法名仅供参考)
#pragma mark - 更新角色信息
///上传玩家信息(必须,在选择完服务器,正式进入游戏时候调用)
- (void)uploadRoleData {
// 角色 id
NSString *roleId = nil;
// 角色名
NSString *roleName = nil;
// 角色等级
NSString *roleLv = nil;
// 服务器 id
NSString *serverId = nil;
// 服务器名称
NSString *serverName = nil;
// 工会
NSString *society = nil;
// 角色 vip 等级
NSString *vipLv = nil;
// 战力
NSString *power = nil;
// 游戏渠道id(可不填)
NSString *cpChannelID = nil;
[[CMKOASDK sharedInstance] updateRole:@{
@"roleID": roleId,
@"roleName": roleName,
@"roleLevel": roleLv,
@"serverID": serverId,
@"serverName":serverName,
@"society": society,
@"vip": vipLv,
@"power": power,
@"cpChannelID": cpChannelID
}];
}
- 显示客服系统(方法名仅供参考)
#pragma mark - 显示客服
-(void)showCustomService {
[[CMKOASDK sharedInstance] showCustomerSupport];
}
- 显示账号绑定页面(方法名仅供参考)
#pragma mark - 账号管理
-(void)showAccountCenter {
id<CMKOALoginManagerDelegate> manager = [CMKOASDKLoginManager sharedManager];
if ([manager respondsToSelector:@selector(showBindingDialog)]) {
[manager showBindingDialog];
}
}
- 打点事件上报(方法名仅供参考)
#pragma mark - 打点
// 角色升级
-(void)roleUpgrade:(NSString*)lv {
id<CMKOAAnalytics> analyticsDelegate = [CMKOASDK sharedInstance].analyticsDelegate;
if ([analyticsDelegate respondsToSelector:@selector(cmkoa_levelUp:)]) {
[analyticsDelegate cmkoa_levelUp:lv.intValue];
}
}
// 完成新手引导
- (void)guideFinish {
id<CMKOAAnalytics> analyticsDelegate = [CMKOASDK sharedInstance].analyticsDelegate;
if ([analyticsDelegate respondsToSelector:@selector(cmkoa_completeBeginnerGuide)]) {
[analyticsDelegate cmkoa_completeBeginnerGuide];
}
}
- 调起支付UI, 不包含下单逻辑 (请先完成下单逻辑获取到对应数据后再执行该方法, 方法名仅供参考)
#pragma mark - 调起支付
-(void)charge:(类名 *)orderInfo {
// 商品名称
NSString *productName = nil;
// 商品价格
NSString *price = nil;
// 游戏商品id
NSString *cpProductId = nil;
// 商品描述
NSString *productDesc = nil;
// cw订单号
NSString *orderID = nil;
// extension字段(具体参考CWSDK文档-服务器 - 统一下单接口(游服->CWServer) )
NSString *paymentStr = nil;
CMKOAProductInfo* productInfo = [[CMKOAProductInfo alloc] init];
productInfo.currencyCode = [CMKOAServerConfig currentConfig].currencyCode;
productInfo.productName = productName;
productInfo.price = price;
productInfo.productDesc = productDesc;
productInfo.orderID = orderID;
productInfo.cpProductId = cpProductId;
productInfo.paymentStr = paymentStr;
[[CMKOASDK sharedInstance] showPaymentViewControllerWithProductInfo:productInfo];
}
- 支付成功回调(方法名仅供参考)
// 支付成功--客户端收到钻石后调用此方法
- (void)onOrderPaySucc {
[[CMKOASDK sharedInstance] finishPayment];
}
网友评论