Estou trabalhando com um aplicativo React Native e tentando definir uma tela de inicialização personalizada, mas não consigo.
React Native cria um LaunchScreen.xib por padrão, então criei um LaunchImage dentro de Images.xcassets:
Também li que devo modificar o "Arquivo da tela de inicialização" em "Ícones de aplicativos e imagens de inicialização" em minhas opções:
Depois de fazer isso, minha tela de inicialização ficou totalmente preta e quando o aplicativo é carregado, há quadros pretos na parte superior e inferior:
Portanto, não sei o que devo fazer para definir minha tela de inicialização em meu projeto React Native.
Ficarei grato se alguém puder me ajudar com esses problemas.
Desde já, obrigado.
ios
xcode
react-native
asset-catalog
JV Lobo
fonte
fonte
Respostas:
Consegui resolver o problema com a ajuda deste tópico: inicialização não aparece no aplicativo iOS (usando Images.xcassets)
Vou explicar profundamente, caso possa ajudar outra pessoa.
Primeiro , você precisa criar certas imagens. O que usei para isso foi este template e esta página com um gerador automático: TiCons
Quando baixei minhas imagens, peguei as que estavam dentro da pasta assets / iphone, só peguei aquelas:
Você também precisa deste Contents.json arquivo na mesma pasta, comprei de um amigo:
Então, neste ponto eu criei uma pasta chamada LaunchImage.launchimage dentro da pasta Images.xcassets em meu projeto React Native e salvei as imagens e o arquivo Contents.json dentro dela:
Em segundo lugar , você deve abrir seu projeto no Xcode e nas configurações "Gerais", abaixo de " Ícones do aplicativo e imagens de inicialização ", temos que deixar a opção " Arquivo de tela inicial " vazia (também podemos excluir o arquivo LaunchScreen.xib dentro de nosso projeto ) e, em seguida , clique em " Usar catálogo de ativos ". Será aberto um modal, optamos por Migrar as Imagens do catálogo
Agora, no seletor " Launch Images Source ", podemos escolher a pasta que criamos antes, LaunchImage (aquela com nossas imagens):
Escolhemos este em vez de Ativos de marca e podemos excluir a pasta Ativos de marca .
Neste ponto, poderemos executar nosso aplicativo React Native com nossas imagens de inicialização personalizadas:
Eu sei que parece um pouco complexo para uma tarefa supostamente fácil, mas depois de ler muito sobre isso, essa era a única maneira de fazer minhas imagens splash funcionarem, então eu queria compartilhar com a comunidade.
fonte
Certifique-se de excluir o aplicativo do simulador. Em seguida, faça uma limpeza em seu projeto.
fonte
Tenho olhado muito para essas respostas em SO contendo soluções de como criar uma nova tela de lançamento. Quero dizer, vamos pensar sobre isso por um minuto.
Quando criamos um novo projeto reagente nativo, o que vemos na tela de lançamento?
Então isso me fez pensar: como eles fizeram isso?
Acho que deve haver uma razão para isso. Então entrei no
LaunchScreen.xib
e fiz uma alteração no texto padrão "React Native ..." ou o que quer que ele diga. Executei o aplicativo mais uma vez para ver se a tela de inicialização refletia minhas edições.Solução 1 Edite o LaunchScreen.xib existente
Solução 2 Criar meu próprio
Então eu fiz, levei mais tempo para digitar esta resposta do que aprender a criar a minha própria.
Both of these solutions are compatible with all the devices.
Excluir
LaunchScreen.xib
clique com
images.xcassets
o botão direito do mouse no espaço em branco**import**
e selecione a imagem que deseja adicionar.Clique com o botão direito na pasta raiz do seu projeto e adicione um novo arquivo do tipo
Launch Screen
e nomeie-o como quiser.Clique no seu projeto no painel de navegação esquerdo, vá para
Settings
>General
e emApp Icons and Launch Images
. Certifique-se de queLaunch Image Source
esteja em branco e queLaunch Screen File
tenha o mesmo nome de sua tela de inicialização recém-criada.Clique no novo arquivo que você criou
step 2
, arrasteImage View
ou edite como quiser.Então é isso, pronto. Você nem precisa limpar a solução, apenas reconstrua.
fonte
Atualizar
generator-rn-toolbox
está obsoleto. Em vez disso, use react-native-make .resposta antiga
Eu recomendo generator-rn-toolbox para aplicar a tela inicial ou o ícone principal usando o react-native. É mais simples e fácil de usar por meio de cli como reagente nativo.
Requisitos
Instalar
npm install -g yo generator-rn-toolbox
brew install imagemagick
Aplicar tela inicial no iOS
yo rn-toolbox:assets --splash YOURIMAGE.png --ios
ou Android
yo rn-toolbox:assets --splash YOURIMAGE.png --android
Isso é tudo. :)
Fonte
fonte
generator-rn-toolbox
a realidade faz tudo o que a resposta aceita.Só passei por isso e funciona muito bem. O único obstáculo que descobri não foi limpar o conteúdo do simulador. Se você achar que sua nova tela de inicialização não está funcionando, você precisa abrir a simulação e ir para o seguinte:
Simulador> Redefinir conteúdo e configurações
Deve haver algum cache de hardcore acontecendo dentro do simulador, mas uma vez que isso foi feito - execute novamente e você verá o aplicativo. Certifique-se de fazer isso tanto para os simuladores xcode quanto para os simuladores react-nativos!
fonte
Certifique-se de que a seleção 'Launch Screen File' esteja vazia:
fonte
Siga este link:
Se você quiser adicionar uma tela inicial ao meu aplicativo React Native. Siga o processo, o resultado será todo seu.
ETAPA: 1 Primeiro, criei uma pasta splashImageResource e adicionei o arquivo launchScreen.xib com a imagem inicial.
ETAPA: 2 mude o código conforme escrito na tag subviews. com este código
<subviews> <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" image="splash.png" translatesAutoresizingMaskIntoConstraints="NO" id="ZkI-RL-69Z"> </imageView> </subviews>
ETAPA: 3 Você deve abrir seu aplicativo no Xcode. Aqui estão as etapas a seguir:
a) Vá para a pasta do seu projeto
b) Abra a pasta ios
c) Vá para o arquivo que tem .xcodeproj como extensão, no meu caso é splasScreenTutorial.xcodeproj
d) Abra este arquivo em seu Xcode.
e) Exclua o arquivo launchScreen.xib.
f) Clique na pasta splashScreenTutorial e vá para a seção TARGETS
g) Clique na guia Geral no canto superior esquerdo do seu Xcode e role para baixo até ícones de aplicativos e imagens de inicialização
h) Acesse Launch Images Source e clique em Use Asset Catalog. Clique em migrar.
i) Remova o texto LaunchScreen do Launch Screen File.
j) Volte para a pasta do projeto e abra o arquivo Images.xcassets. Você deve ver AppIcon e LaunchImage.
k) Em seguida, clique em LaunchImage. Finalmente, arraste as imagens da tela inicial de tamanhos diferentes para a caixa Launch Image.
Arraste as imagens assim.
Tela inicial de teste a) Para ver as alterações, você precisa excluir o aplicativo de seu simulador se você executou o aplicativo inicialmente.
b) Para excluir o aplicativo, clique no menu Hardware na barra do Simulador e vá para a Página inicial.
c) Toque e mantenha pressionado o ícone do aplicativo específico que deseja excluir e clique no sinal X no ícone.
d) Execute seu aplicativo novamente usando run-ios react-native
Você pode ver sua tela inicial
fonte
Para mim, continuei
XCode 10.1
ereact-native 59.2
tive que passar pelas etapas adicionais depois de já adicionar as imagens, o storyboard e 1 imagem universal.Show in Finder
e edite seuContents.json
arquivoA imagem agora deve ser centralizada em iPhones de todos os tamanhos (testado em Retrato).
fonte
Se quiser usar o arquivo .xib da tela inicial existente que o React Native configurou inicialmente, mas com seu próprio logotipo e cor de fundo (e sem nenhum texto padrão do React Native), você pode seguir as instruções aqui: https: // medium.com/@kelleyannerose/react-native-ios-splash-screen-in-xcode-bd53b84430ec .
fonte
Se você criar uma tela de inicialização com a ajuda do React, deverá adicionar a mesma coisa no arquivo LaunchScreen.xib no iOS Xcode para que você possa pegar uma captura de tela e adicioná-la como uma imagem em Images.xcassets.
Abra LaunchScreen e adicione UIImageView em View from Object Library no painel direito do Xcode.
Adicione restrições à direita, à esquerda, inferior e superior à vista. Como mostrado abaixo -
Não se esqueça de alterar o UIImageView ContentMode como AspectFit para que tenha a mesma aparência quando o aplicativo for executado.
Depois disso, você precisa adicionar o código em AppDelegate para que você não obtenha uma tela branca. O código é -
Você pode consultar - https://facebook.github.io/react-native/docs/running-on-device.html#pro-tip
fonte
Apenas para aqueles que ainda estão com problemas, há mais uma etapa faltando na resposta aceita antes de fazer a tela de inicialização do iOS funcionar.
Abra
Info.plist
a pasta do projeto e exclua a chave "Nome base do arquivo nib principal". Em seguida, reconstrua e, com sorte, o problema terá desaparecido.fonte
Ao seguir as soluções acima, meu aplicativo estava travando na tela inicial, então fiz as 7 etapas a seguir para adicionar a tela inicial personalizada no ios.
LaunchScreen.xib
arquivo em seu projeto (observe que esta é a tela que é mostrada por padrão no ios)Agora temos que adicionar a imagem ao
Images.xcassets
para que possamos referenciá-lo noLaunchScreen.xib
para fazer esse gotoImages.xcassets
. clique no+
botão seguido deimport
e adicione a imagem que deseja mostrar na tela inicial. AbaixoAppIcon
você verá o nome do arquivo de imagem. Este é o nome que usaremos como referência em nossoLaunchScreen.xib
Agora temos que fazer referência à imagem que adicionamos no
LaunchScreen.xib
arquivo, então navegue de voltaLaunchScreen.xib
e clique noimage view
que adicionamos anteriormente e no canto direito você verá um monte de opções. clique no primeiro que dizimage
e selecione a imagem que você importou na etapa 5react-native run-ios
e você verá as mudanças.fonte
Você deve definir a origem da imagem da tela de inicialização como seu conjunto de imagens. Em seguida, exclua o arquivo LauncScreen.xib. Depois faça uma pesquisa global em seu projeto e remova todas as referências a LaunchScreen.xib (veja em todo o seu projeto. Eu uso o editor de texto sublime, então é cmd + shift + f) e deve funcionar.
fonte