iOS

Quick Start

最新バージョンダウンロード

1. サンプルプロジェクトの構成

2. 環境設定

NAVERゲームのiOS SDKは、iOS 12.0以降のバージョンに対応しています。

NAVERゲームSDKを使用する場合は、XCodeで環境設定を以下のとおり設定してください。

  • TARGETS項目のうち実行されるアプリを選択してください。(サンプルプロジェクト基準でNNG SDK Sampleターゲット)

  • Build Settingタブを選択してLinking項目でOther Linker Flagsを探してください。

    • BasicまたはCustomizedモードはOther Linker Flagが見えない場合もあります。この場合は、Allモードを選択してください。

    • 画面右上にある検索ウィンドウにOther Linker Flagを入力すると容易に見つけることができます。

  • Other Linker Flags-ObjCオプションと-lc++オプションを追加してください。

  • Info.plistに以下のユーザー権限獲得オプションを追加してください。

    • Privacy - Camera Usage Description

    • Privacy - Photo Library Usage Description

  • TARGETS項目のうち実行されるアプリを選択してInfoタブのURL Types項目にIdentifier値とURL Schemes値を入力してください。

  • Identifier値は当該TARGETGeneralタブで確認できます。

  • URL Schemes値にはNAVER IDでログイン開発者センターにアプリケーションを登録時に入力したURL Scheme値を入力してください。

3. 初期化

  • NAVER IDでログイン開発者センターでアプリケーションを登録時に受け取ったクライアントIDとクライアントシークレット、開設したラウンジのIDをNNGSDKManagerに登録してください。

  • Naver Game SDKのビューが入る親ビューコントローラーを指定してください。

    [NNGSDKManager.shared setClientId:@"UKvNABLDsyEJusJGsXL2"
                         clientSecret:@"rK4suc_Qd0"
                             loungeId:@"naver_game_4developer"];
                             
    [NNGSDKManager.shared setParentViewController:self];

NNGSDKManagerクラス

NNGSDKManagerクラスはNAVERゲームSDKを制御するクラスです。NNGSDKManagerクラスで制御できる機能についての詳細は、以下の内容をご参考にしてください。

1. countryCodeプロパティ

countryCodeプロパティは、2文字のアルファベットで構成された国コード(ISO 3166-1 alpha-2)です。これを活用すると、コード内で国別に分岐処理することができます。主な国コードは以下のとおりです。その他の国コードはリンクをご参考にしてください。

2.resentBannerViewController: メソッド

presentBannerViewController: メソッドはバナー画面に表示されるメソッドです。以下はpresentBannerViewController: メソッドを実装した例です。

[NNGSDKManager.shared presentBannerViewController];

3. presentSorryViewController: メソッド

presentSorryViewController: メソッドは緊急お知らせ画面を表示させるメソッドです。ゲームのAPI通信に失敗した場合は、このメソッドを使用してSDKのエントリーポイントとなる他のUIを非表示にしたり非アクティブ化して、ユーザーがSDKを使用できないよう実装するのをお勧めします。以下はpresentSorryViewController: メソッドを実装した例です。

[NNGSDKManager.shared presentSorryViewController];

4. presentBoardViewControllerWith: メソッド

presentBoardViewControllerWith: メソッドは掲示板を表示させるメソッドです。管理ページで掲示板を指定すると、作成された掲示板IDをパラメータとして取得します。以下はpresentBoardViewControllerWith: メソッドを実装した例です。

[NNGSDKManager.shared presentBoardViewControllerWith:@1];

5. presentFeedViewControllerWith:scheduled: メソッド

presentFeedViewControllerWith:scheduled: メソッドは投稿の詳細を表示させるメソッドです。投稿IDをパラメータとして取得します。以下はpresentFeedViewControllerWith:scheduled: メソッドを使用してIDが12345である投稿の詳細画面を開くコードです。

[NNGSDKManager.shared presentFeedViewControllerWith:@12345 scheduled:NO];

scheduledパラメータは予約投稿の有無を意味します。予約投稿をアップロードすると、投稿IDとは異なる予約投稿のIDが発行されます。予約投稿のIDが123である投稿の詳細画面を開くコードは以下の通りです。

[NNGSDKManager.shared presentFeedViewControllerWith:@123 scheduled:YES];

予約投稿のIDを使用して投稿の詳細を開くコードは投稿が登録され、投稿IDが発行されても正常に作動するため、後でコードを修正する必要がありません。

予約投稿を登録したり予約した時間ではないときにまだ表示されていない投稿とリンクするバナーをクリックしても、何のアクションも発生しません。

6. dismissメソッド

dismissメソッドはSDK画面を閉じるメソッドです。以下はdismissメソッドを実装した例です。

[NNGSDKManager.shared dismiss];

コールバックデリゲート

コールバックデリゲートを設定すると、プラグで発生するイベントを処理することができます。

コールバックデリゲートの登録

コールバックデリゲートを処理する対象をNNGSDKManagerクラスに登録します。

@interface ViewController () <NNGSDKManagerDelegate>
...
NNGSDKManager.shared.delegate = self;
...

コールバックデリゲートの実装

1. nngSDKDidLoadメソッド

このデリゲートはSDKが実行されるたびに呼び出されます。以下はnngSDKDidLoadメソッドを実装した例です。

- (void)nngSDKDidLoad {
    NSLog(@"SDK is loaded.");
}

2. nngSDKDidUnloadメソッド

このデリゲートはSDKが終了されるたびに呼び出されます。以下はnngSDKDidUnloadメソッドを実装した例です。

- (void)nngSDKDidUnload {
    NSLog(@"SDK is unloaded.");
}

3. nngSDKDidReceiveInGameMenuCode: メソッド

このデリゲートはSDKでインゲームメニューコードを受け取るよう指定したイベントが発生するたびに呼び出されます。管理ページでバナーをクリックすると、インゲームメニューコードを受け取るよう指定することができ、同ページでメニューコードの文字列を入力することができます。

管理ページで入力した文字列がそのまま伝達されるため、これを確認してイベント発生時に希望するアクションを処理することができます。以下はnngSDKDidReceiveInGameMenuCode: メソッドを実装した例です。

- (void)nngSDKDidReceiveInGameMenuCode:(NSString *)inGameMenuCode{
    [NNGSDKManager.shared dismiss];

    if ([inGameMenuCode isEqualToString:@"myMenuCode1"]) {
        // Do somthing for the in-game menu code "myMenuCode1"
    } else if ([inGameMenuCode isEqualToString:@"myMenuCode2"]) {
        // Do somthing for the in-game menu code "myMenuCode2"    
    }
}

nngSDKReceiveInGameMenuCode: メソッドはSDK画面を閉じません。必要であれば、上記のコード例の2列目に記述されたように、SDK画面を閉じるコードを追加してください。

Last updated