美文网首页
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