A tela de inicialização (também chamada de splash screen) aparece após o início do aplicativo e o fechamento da LaunchScreen do sistema, e desaparece quando a página inicial é carregada. Este tópico descreve como configurar o anúncio da tela de inicialização no cliente iOS para buscar e exibir conteúdo publicitário do console mPaaS.
Após configurar a tela de inicialização no cliente, defina as informações do slot de anúncio e o conteúdo no console. Consulte Crie um slot de anúncio e Crie uma campanha. O aplicativo busca e exibe os dados de veiculação de anúncios com base nessa configuração, o que permite a entrega dinâmica de publicidade.
O download dos dados de veiculação de anúncios ocorre de forma assíncrona. Na primeira execução após a configuração, o aplicativo apenas baixa e armazena a imagem do anúncio em cache localmente, sem exibi-la. A imagem em cache aparecerá na próxima inicialização.
A tela de inicialização baseia-se no framework mPaaS. Para obter detalhes, consulte Visão geral do framework mPaaS. O ciclo de vida da tela de inicialização funciona da seguinte maneira:
O framework inicia e cria um bootloader para gerenciar a janela principal do aplicativo.
Quando a tela de inicialização aparece, o framework alterna automaticamente para a janela dessa tela.
Quando o bootloader conclui o carregamento e o microaplicativo Launcher é exibido, a tela de inicialização fecha e o framework retorna à janela principal.
Pré-requisitos
Antes de começar, verifique se você:
Iniciou o componente Smart Delivery. Para obter detalhes, consulte Iniciar o componente
Adicionar código da tela de inicialização
No arquivo DTFrameworkInterface+MPCDPDemo_plugin.m (categoria de framework gerada pelo mPaaS), adicione as seguintes configurações:

-
Declare uma variável estática para armazenar o objeto da janela da tela de inicialização.
static UIWindow *splashScreenWindow; -
No método
application:handleDidFinishLaunchingWithOptions:, implemente a lógica do anúncio da tela de inicialização e abra a tela.- (DTFrameworkCallbackResult)application:(UIApplication *)application handleDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Check if the launch screen exists BOOL showSplashWindow = YES; showSplashWindow = splashScreenExist(showSplashWindow); if (showSplashWindow) { __weak typeof(self) weakSelf = self; // Open the launch screen splashScreenWindow = APSplashScreenStart(^{ // Callback for when the launch screen closes [weakSelf splashScreenDidDismiss]; }); } return DTFrameworkCallbackResultContinue; } -
Implemente a lógica de fechamento: restaure a janela principal como janela chave, libere a janela da tela de inicialização e, opcionalmente, publique uma notificação.
- (void)splashScreenDidDismiss { // Revert the application's main window to the key window [DTContextGet().window makeKeyAndVisible]; [self performSelector:@selector(doDismiss) withObject:nil afterDelay:0.0]; } - (void)doDismiss { // Release the launch screen object splashScreenWindow.rootViewController = nil; splashScreenWindow = nil; [self notifySplashScreenDismiss]; } - (void)notifySplashScreenDismiss { // Post a notification when the splash screen closes. Handle other logic here (optional). [[NSNotificationCenter defaultCenter] postNotificationName:@"kSplashScreenDidDismiss" object:nil]; } -
Após o término do carregamento do framework, sinalize que a tela de inicialização está prestes a fechar. Faça essa chamada no método
application:afterDidFinishLaunchingWithOptions:.- (void)application:(UIApplication *)application afterDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions { APWillKillSplashScreen(); // ... } -
Quando a
ViewControllerda página inicial aparecer, publique uma notificação para fechar a tela de inicialização. Geralmente, trata-se darootViewControllerdo microaplicativo Launcher. Se for umaTabBarController, use aViewControllerda primeira aba.@implementation HomeViewController - (void)viewDidLoad { [super viewDidLoad]; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // Notify that the Launcher has been displayed [[NSNotificationCenter defaultCenter] postNotificationName:@"kNotificationLauncherDidAppear" object:nil]; } @end
Tópicos relacionados
Para obter detalhes sobre a API da tela de inicialização, consulte Referência da API.