跳转至

集成SDK

开始之前

初始化iOS SDK

导入依赖项

导入SohaSDK 并设置 SohaDelegate 以侦听SDK事件:

AppDelegate.h
#import <SohaSDK/SohaSDK.h>

@interface AppDelegate: UIResponder<UIApplicationDelegate,SohaDelegate>

@end

初始化SDK

  1. 在应用程序代理的 application(_:didFinishLaunchingWithOptions:) 方法中设置SDK主窗口:

    //Set SDK main window
    [SohaSetting settings].setWindow = self.window;
    
    如果你使用Unity游戏引擎,你可以使用方法 UnityGetMainWindow() 来获得主窗口::
    [SohaSetting settings].setWindow = UnityGetMainWindow();
    

  2. 启动 SDK。在 didFinishLaunchingWithOptions: 中,调用 startWithDelegate:application:launchOptions:loginManually:language:

    [SohaSetting setBaseURL:BaseURLProduct];
    
    [SohaSDK startWithDelegate:self
                   application:[UIApplication sharedApplication]
                 launchOptions:launchOptions
                 loginManually:YES
                      language:SohaSDKLanguageVietnam];
    

这是一个初始化 SDK 的示例:

AppDelegate.m
@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //Set SDK main window.
    //If you use the Unity game engine, you can use the method UnityGetMainWindow() to get the main window
    [SohaSetting settings].setWindow = self.window;

    [SohaSetting setBaseURL:BaseURLProduct];

    [SohaSDK startWithDelegate:self
                    application:[UIApplication sharedApplication]
                    launchOptions:launchOptions
                    loginManually:YES
                    language:SohaSDKLanguageVietnamese];
}

@end

Danger

startWithDelegate 方法只应调用一次。多次调用可能导致不可预测的错误。

实现 SDK 事件

通过使用 SohaDelegate,您可以监听生命周期事件,例如登出时或购买状态。

-(void)sohaDidLogoutSuccess:(SohaUser *)user{
    // Called after logging out the current user
}

-(void)sohaDidDeleteAccountSuccess{
    // 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
}

监听应用委托事件

实现应用委托的所有以下方法:

- (BOOL)application:(UIApplication *)app
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{

    return [SohaSDK application:app
                     openURL:url
                     options:options];
}

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
    return [SohaSDK application:application
        continueUserActivity:userActivity
          restorationHandler:restorationHandler];
}

请求应用程序跟踪透明度授权

要显示访问IDFA的应用程序跟踪透明度授权请求,请更新您的Info.plist以添加NSUserTrackingUsageDescription密钥,其中包含一条描述您使用情况的自定义消息。下面是一个示例描述文本:

<key>NSUserTrackingUsageDescription</key>
<string> nhận dạng này sẽ được sử dụng để phân phối quảng cáo được  nhân hóa cho bạn</string>
为了呈现应用跟踪透明度授权请求,请在 applicationDidBecomeActive: 中调用 requestTracking
- (void)applicationDidBecomeActive:(UIApplication *)application{
    if (@available(iOS 14, *)){
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status){

        }];
    }
}

更改 SDK 语言

当应用程序更改语言时,请使用以下方法更新 SDK 语言:

[SohaSDK changeLanguage:SohaSDKLanguageEnglish];