Skip to content

初始化

WARNING

初始化接口,需要在游戏启动时,尽快调用, 否则影响后续接口的调用。

设置SDK回调代理

在初始化接口调用之前, 还需要设置U8SDK的回调函数, 回调对象需要实现U8SDKDelegate的各个接口:

点击查看代码
objc

// 初始化,登录失败,支付,其他事件等,会触发该回调
-(void) OnEventWithCode:(int)code msg:(NSString*)msg
{
    switch (code){
        case U8_CODE_FRAMEWORK_INIT_SUCCESS:
            // u8框架初始化成功,msg中有后台配置的动态参数(json格式)等
            Log.d("U8SDK", "fetch servers success:"+msg);
            break;
        case U8_CODE_FRAMEWORK_INIT_FAILED:
            // u8框架初始化失败
            Log.d("U8SDK", "fetch servers failed:"+msg);
            break;
        case U8_CODE_INIT_SUCCESS:
            // 渠道SDK初始化成功
            break;
        case U8_CODE_INIT_FAILED:
            // 渠道SDK初始化失败
            break;
        case U8_CODE_LOGIN_FAILED:
            // 渠道SDK登录失败
            break;
        case U8_CODE_PAY_SUCCESS:
            // 渠道SDK支付成功
            break;
        case U8_CODE_PAY_FAILED:
            // 渠道SDK支付失败
            break;

    }
}

//SDK登录成功回调, param中是用户数据
-(void) OnUserLogin:(NSDictionary*)param
{
    
}

//渠道SDK登出回调, 游戏收到该回调,需要返回到游戏登录界面。
-(void) OnUserLogout:(NSDictionary*)param
{

}

//自定义回调,一般无需处理
-(void)OnEventCustom:(NSDictionary*)param
{

}


// 返回当前游戏主ViewController的view
-(UIView *)GetView
{
    //return [self GetViewController].view;
}

// 返回当前游戏主ViewController
-(UIViewController *)GetViewController
{
    //return self;
}

实现完成后,需要调用下面API设置回调类:

objc
[[U8SDK sharedInstance] setDelegate:self];

调用初始化接口

初始化应该在程序启动时调用, 也就是在didFinishLaunchingWithOptions方法里:

objc

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    NSDictionary *sdkconfig = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"U8SDK"];
    [[U8SDK sharedInstance] initWithParams:sdkconfig];

    [[U8SDK sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
    
    return YES;
}

实现生命周期函数

需要在AppDelegate以下对应的生命周期方法中调用U8SDK种对应这些方法:

点击查看代码
objc
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    [[U8SDK sharedInstance] application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];  
}


-(void)application:(UIApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo
{
    [[U8SDK sharedInstance] application:application didReceiveRemoteNotification:userInfo]; 
}

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    [[U8SDK sharedInstance] application:application didReceiveRemoteNotification:userInfo]; 
}

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
    [[U8SDK sharedInstance] application:application didReceiveLocalNotification:notification]; 
}

- (void)applicationWillResignActive:(UIApplication *)application {
    [[U8SDK sharedInstance] applicationWillResignActive:application]; 
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [[U8SDK sharedInstance] applicationDidEnterBackground:application]; 
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    [[U8SDK sharedInstance] applicationWillEnterForeground:application]; 
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [[U8SDK sharedInstance] applicationDidBecomeActive:application]; 
}

- (void)applicationWillTerminate:(UIApplication *)application {
    [[U8SDK sharedInstance] applicationWillTerminate:application]; 
}

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    return [[U8SDK sharedInstance] application:application handleOpenURL:url]; 
}

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    return [[U8SDK sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; 
}

版权所有© 2021-2030 上海丞诺网络科技有限公司