集成SDK¶
开始之前¶
- 您必须 Install Soha SDK.。
- 您已经下载并安装了SohaGame提供的
.p12和.mobileprovision文件。 - 您必须完成 Configure SDK Info
以下 SDK 初始化和委托回调适用于 AppDelegate 和 SceneDelegate 两种生命周期,均保留在 AppDelegate 中。
初始化iOS SDK¶
导入依赖项¶
导入SohaSDK 并设置 SohaDelegate 以侦听SDK事件:
#import <SohaSDK/SohaSDK.h>
@interface AppDelegate: UIResponder<UIApplicationDelegate,SohaDelegate>
@end
初始化SDK¶
启动 SDK。在 didFinishLaunchingWithOptions: 中,调用 startWithDelegate:application:launchOptions:language:
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[SohaKit startWithDelegate:self
application:[UIApplication sharedApplication]
launchOptions:launchOptions
language:@"vi"];
// vi:越南语
// zh:中文
// en:英语
// id:印尼语
// th:泰语
return YES;
}
@end
Danger
startWithDelegate 必须在 AppDelegate 中且只调用一次,使用 SceneDelegate 时也不例外。请勿在连接场景时再次初始化 SDK。
实现 SDK 事件¶
通过使用 SohaDelegate,您可以监听生命周期事件,例如登出时或购买状态。
-(void)sohaDidLogoutSuccess:(SohaUser *)user{
// Called after logging out the current user
}
-(void)sohaDidDeleteAccountSuccess:(SohaUser *)user{
// Called after successful user deletion
}
-(void)sohaDidPurchaseSuccess:(SohaTransaction *)transaction{
// Called after successful completion of in-app purchase
}
-(void)sohaDidPurchaseFailed:(SohaTransaction *)transaction purchaseError:(NSString *)error{
// Called after a failed in-app purchase
}
处理应用事件¶
请根据应用当前的生命周期选择对应情况。iOS SDK 27 的场景要求和提交期限请参见SceneDelegate。
情况 1:AppDelegate 生命周期¶
保留 AppDelegate 中现有的窗口配置,在 AppDelegate.m 中添加以下代码:
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
return [SohaKit application:app openURL:url options:options];
}
情况 2:SceneDelegate 生命周期¶
SDK 初始化和 SohaDelegate 回调仍保留在 AppDelegate 中,窗口由 SceneDelegate 管理。在 SceneDelegate.m 中添加以下代码:
#import <SohaSDK/SohaSDK.h>
- (void)scene:(UIScene *)scene
openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {
[SohaKit openURLContexts:URLContexts];
}
如果应用尚未配置 SceneDelegate,请按照SceneDelegate完成场景和窗口配置。
推送通知¶
确保在签名和能力中启用了 Push Notifications。
注册远程通知¶
在启动时或应用流程中合适的时机调用:
此方法负责注册远程推送通知,并在内部处理通知中心的委托。
转发 APNs 设备令牌¶
在 AppDelegate.m 中实现 application:didRegisterForRemoteNotificationsWithDeviceToken:,并将 APNs 设备令牌传递给 SDK。即使使用 SceneDelegate,也应将此回调保留在 AppDelegate 中。
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[SohaKit registerDeviceToken:deviceToken];
}
更改 SDK 语言¶
当应用程序更改语言时,请使用以下方法更新 SDK 语言:
显示应用内评分弹窗(Rate App)¶
如需显示 App Store 应用内评分弹窗,请调用以下方法(可在任意线程调用):