Appearance
初始化
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];
}