アプリケーションを開発する

Mobage Native SDK を使ったアプリケーションの起動シーケンスは下図のようになります。

1.[MBGPlatform initialize] によって初期化処理を行います。
2.[[MBGPlatform sharedPlatform] checkLoginStatus] によってログイン状態を確認します。
3.onLoginRequired が返ってきた場合、[MBGPlatform showLoginDialog] によってログインダイアログを表示します。

${PJ_NAME}AppDelegate.mm の編集

作成する新規アプリケーションのメインのコードとなる、${PJ_NAME}AppDelegate.mm を編集します。下記のコードは、didFinishLaunchingWithOptions (iOS アプリケーションで最初に呼ばれるイベントメソッド) の一例です。

ログイン処理

  • NSURLProtocolの利用について
    • NSURLProtocolを使用して「通信をフックする様な処理」や「キャッシュ機能」等を実装する場合、SDKが行っている処理を意図せず遮断してしまうことがあります。
    • SDKの処理を遮断してしまうと、ログインできない等の問題が発生致しますのでご利用の際はご注意ください。

 

 

下記コードで初期化の処理を行います。MBGPlatform#initialize メソッドでは、consumerKey, consumerSecret の他に、リージョンや環境、appId 等を指定します。(consumerKey, consumerSecret はディベロッパーサイト上からアプリケーションを登録していただくと発行されます。DeveloperSite 上の「iOS アプリ設定」の中の「SDK 向け Consumer Key」「SDK 向け Consumer Secret」を入力してください。)

(リージョンコードについて)

上記のコード例では MBGPlatform.h を import する前提です。このヘッダ中で enum MBG_REGION によってリージョンコード MBG_REGION_JP を定義しています。詳しくは別紙の API リファレンスをご参照ください。

(拡張子の変更)

このログイン処理では Objective-C++ 実装を利用しますので、ファイルの拡張子を .mm に変
更してください。

非同期イベント処理

registerTick は Mobage Native SDK 1.4.6 以降では呼び出し不要です。

Mobage Native SDK では基本的に非同期で通信処理を行い、呼び出したスレッドでイベント処理の結果を受け取ります。イベント処理結果を受け取るためには、tick メソッドを Timer に登録するための下記メソッド呼び出しが必要です。

Timer を使用せずに自前のループで制御したい場合は、上記の registerTick メソッド呼び出しの代わりに自前のループの中で下記のように tick メソッドを呼び出してください。

(イベントハンドラの実装)

ログイン処理を行った結果を受け取るメソッドを実装します。下記のコードを ${PJ_NAME}AppDelegate.mm の中に追加してください。

onLoginRequired や onLoginComplete は通常会員へのアップグレード訴求、メールアドレス登録訴求時等にも呼び出される場合がございます。その際に checkProgress() のような実装を行わずに onLoginComplete 内でゲームの初期化を行ってしまうと訴求時に毎回ゲームが初期化されてしまうのでご注意ください。
 

また、 onLoginComplete では User Id が取得できますが、User Id を変数に一旦保存し、もう一度 onLoginComplete が呼ばれた時の User Id が変わっていなければ、特に何もせず、もし変わっていたら現在のゲーム内で使用しているユーザデータを全て破棄し、ゲームを最初に戻して、タイトル画面から別の User Id でプレイするように実装する必要があります。これは、Mobage SDK に内包されるコミュニティ機能から、ログアウト機能が呼ばれた際に User Id が切り替わるケースがあるためです。

また、Mobage Native SDKに対して、アプリケーションの起動、終了等のイベントや、他のアプリからの起動URLを通知するためのメソッドを実装します。下記のコードを ${PJ_NAME}AppDelegate.mm の中に追加してください。

 

ユーザ情報を取得する

MBGSocialPeople#getCurrentUser を呼ぶメソッドは、例えば下のように記述することができます。getCurrentUser メソッドを呼び、成功した場合はダイアログを表示します。
 

 

${PJ_NAME}AppDelegate.h の編集

(MBGPlatformDelegate プロトコルの継承)

${PJ_NAME}AppDelegate.h で MBGPlatformDelegate プロトコルを継承してください。


更新履歴

  • 2017/04/05
    • ログインの実装内容を変更
    • onLoginRequired, onLoginComplete の注意書きを追記
  • 2015/02/12
    • registerTick の呼び出し不要を追記
  • 2012/12/26
    • かんたんログインに対応するコードを追記
  • 2012/08/08
    • 初版作成

PREVIOUS

Xcode7 でビルドする方法

NEXT

チュートリアル