起動画面 (スプラッシュスクリーンとも呼ばれる) は、アプリが起動し、システムの LaunchScreen が閉じた後に表示され、ホーム画面が読み込まれると非表示になります。本トピックでは、iOS クライアントで起動画面広告を設定し、mPaaS コンソールから広告コンテンツを取得して表示する方法を説明します。
クライアントで起動画面を設定した後、コンソールで広告枠情報とコンテンツを設定します。詳細については、「広告枠を作成する」および「キャンペーンを作成する」をご参照ください。その後、アプリはこの設定に基づいて広告配信データを取得して表示し、動的な広告配信が可能になります。
広告配信データは非同期でダウンロードされます。設定後の初回起動時、アプリは広告画像をローカルにダウンロードしてキャッシュするだけで、表示はしません。キャッシュされた画像は、次回の起動時に表示されます。
起動画面は mPaaS フレームワーク上に構築されています。詳細については、「mPaaS フレームワークの概要」をご参照ください。起動画面のライフサイクルは、次のとおりです。
フレームワークが起動し、アプリのメインウィンドウを管理するためのブートローダーを作成します。
起動画面が表示されると、フレームワークは自動的に起動画面のウィンドウに切り替わります。
ブートローダーの読み込みが完了し、Launcher マイクロアプリケーションが表示されると、起動画面が閉じてフレームワークはメインウィンドウに切り替わります。
前提条件
開始する前に、以下を確認してください:
Smart Delivery コンポーネントが開始されていること。詳細については、「コンポーネントの開始」をご参照ください。
起動画面コードの追加
mPaaS によって生成されたフレームワークのカテゴリファイル DTFrameworkInterface+MPCDPDemo_plugin.m に、以下の設定を追加します:

-
起動画面のウィンドウオブジェクトを保持するための静的変数を宣言します。
static UIWindow *splashScreenWindow; -
application:handleDidFinishLaunchingWithOptions:メソッドで、起動画面の広告ロジックを実装し、起動画面を開きます。- (DTFrameworkCallbackResult)application:(UIApplication *)application handleDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 起動画面が存在するかどうかを確認します BOOL showSplashWindow = YES; showSplashWindow = splashScreenExist(showSplashWindow); if (showSplashWindow) { __weak typeof(self) weakSelf = self; // 起動画面を開きます splashScreenWindow = APSplashScreenStart(^{ // 起動画面が閉じたときのコールバック [weakSelf splashScreenDidDismiss]; }); } return DTFrameworkCallbackResultContinue; } -
dismiss ロジックを実装します。メインウィンドウをキーウィンドウとして元に戻し、起動画面のウィンドウを解放し、オプションで通知を投稿します。
- (void)splashScreenDidDismiss { // アプリケーションのメインウィンドウをキーウィンドウに戻します [DTContextGet().window makeKeyAndVisible]; [self performSelector:@selector(doDismiss) withObject:nil afterDelay:0.0]; } - (void)doDismiss { // 起動画面オブジェクトを解放します splashScreenWindow.rootViewController = nil; splashScreenWindow = nil; [self notifySplashScreenDismiss]; } - (void)notifySplashScreenDismiss { // スプラッシュスクリーンが閉じたときに通知を投稿します。他のロジックはここで処理します (オプション)。 [[NSNotificationCenter defaultCenter] postNotificationName:@"kSplashScreenDidDismiss" object:nil]; } -
フレームワークの読み込みが完了したら、起動画面が間もなく閉じることを通知します。これを
application:afterDidFinishLaunchingWithOptions:メソッドで呼び出します。- (void)application:(UIApplication *)application afterDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions { APWillKillSplashScreen(); // ... } -
ホーム画面の
ViewControllerが表示されたら、通知を投稿して起動画面を閉じます。これは通常、Launcher マイクロアプリケーションのrootViewControllerです。TabBarControllerの場合は、最初のタブのViewControllerを使用します。@implementation HomeViewController - (void)viewDidLoad { [super viewDidLoad]; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // Launcher が表示されたことを通知します [[NSNotificationCenter defaultCenter] postNotificationName:@"kNotificationLauncherDidAppear" object:nil]; } @end
関連トピック
起動画面の API の詳細については、「API リファレンス」をご参照ください。