美文网首页
CWSDK集成文档

CWSDK集成文档

作者: JohnSnow_b20c | 来源:发表于2018-10-15 20:55 被阅读0次

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];
}

相关文章

网友评论

      本文标题:CWSDK集成文档

      本文链接:https://www.haomeiwen.com/subject/xrdqzftx.html