tutorial not instalar info found developer descargar como app ios cordova phonegap iphone-x

ios - not - descargar cordova phonegap



La aplicaciĆ³n Cordova no se muestra correctamente en el iPhone X(simulador) (8)

Hay 3 pasos que debes hacer

para la barra de estado de iOs 11 y los problemas de encabezado de iPhone X

1. Cubierta de ajuste de la ventana gráfica

Agregue viewport-fit=cover al meta de su viewport en <header>

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0,viewport-fit=cover">

Demostración: https://jsfiddle.net/gq5pt509 (index.html)

  1. Agregue más imágenes de bienvenida a su config.xml dentro de <platform name="ios">

No omita este paso , esto es necesario para que la pantalla se ajuste al trabajo del iPhone X

<splash src="your_path/Default@2x~ipad~anyany.png" /> <!-- 2732x2732 --> <splash src="your_path/Default@2x~ipad~comany.png" /> <!-- 1278x2732 --> <splash src="your_path/Default@2x~iphone~anyany.png" /> <!-- 1334x1334 --> <splash src="your_path/Default@2x~iphone~comany.png" /> <!-- 750x1334 --> <splash src="your_path/Default@2x~iphone~comcom.png" /> <!-- 1334x750 --> <splash src="your_path/Default@3x~iphone~anyany.png" /> <!-- 2208x2208 --> <splash src="your_path/Default@3x~iphone~anycom.png" /> <!-- 2208x1242 --> <splash src="your_path/Default@3x~iphone~comany.png" /> <!-- 1242x2208 -->

Demostración: https://jsfiddle.net/mmy885q4 (config.xml)

  1. Arregla tu estilo en CSS

Utilice safe-area-inset-left , safe-area-inset-right , safe-area-inset-top o safe-area-inset-bottom

Ejemplo: (¡Úselo en su caso!)

#header { position: fixed; top: 1.25rem; // iOs 10 or lower top: constant(safe-area-inset-top); // iOs 11 top: env(safe-area-inset-top); // iOs 11+ (feature) // or use calc() top: calc(constant(safe-area-inset-top) + 1rem); top: env(constant(safe-area-inset-top) + 1rem); // or SCSS calc() $nav-height: 1.25rem; top: calc(constant(safe-area-inset-top) + #{$nav-height}); top: calc(env(safe-area-inset-top) + #{$nav-height}); }

Bonificación: puede agregar clases de cuerpo como is-android o is-ios en deviceready

var platformId = window.cordova.platformId; if (platformId) { document.body.classList.add(''is-'' + platformId); }

Entonces puedes hacer algo como esto en CSS

.is-ios #header { // Properties }

Probé ayer mi aplicación basada en Cordova en el iPhone X Simulator en Xcode 9.0 (9A235) y no se veía bien. En primer lugar, en lugar de llenar el área de pantalla completa, había un área negra encima y debajo del contenido de la aplicación. Y lo que es peor, entre el contenido de la aplicación y el negro había dos barras blancas.

Agregar cordova-plugin-wkwebview-engine para que Cordova renderice usando WKWebView (no UIWebView) corrige las barras blancas. Mi aplicación no migra de UIWebView a WKWebView debido a problemas de rendimiento y pérdida de memoria cuando uso cordova-plugin-wkwebview-engine que ocurre al cargar imágenes descargadas de Inapp Purchase contenido alojado en un lienzo HTML5 ( file:// directo file:// acceso por el La vista web no es posible debido a restricciones de seguridad en WKWebView, por lo que los datos de la imagen deben cargarse a través de cordova-plugin-file ).

Estas capturas de pantalla muestran una aplicación de prueba con un fondo azul establecido en el <body >. Arriba y debajo de UIWebView, puede ver las barras blancas, pero no con WKWebView:

Ambas vistas web de Cordova exhiben las áreas negras en comparación con una aplicación nativa que llena el área de pantalla completa:


En mi caso, donde cada pantalla de presentación se diseñó individualmente en lugar de autogenerarse o presentarse en un formato de guión gráfico, tuve que seguir con la configuración de la pantalla de inicio de Legacy y agregar imágenes verticales y horizontales para orientar las orientaciones iPhoneX 1125 × 2436 a la configuración.xml al igual que:

<splash height="2436" src="resources/ios/splash/Default-2436h.png" width="1125" /> <splash height="1125" src="resources/ios/splash/Default-Landscape-2436h.png" width="2436" />

Después de agregarlos a config.xml ("viewport-fit = cover" ya estaba configurado en index.hml) mi aplicación creada con Ionic Pro llena toda la pantalla en dispositivos iPhoneX.


Encontré la solución a las barras blancas here :

Establezca viewport-fit=cover en la etiqueta viewme <meta> , es decir:

<meta name="viewport" content="initial-scale=1, width=device-width, height=device-height, viewport-fit=cover">

Las barras blancas en UIWebView luego desaparecen:

La solución para eliminar las áreas negras (proporcionadas por @dpogue en un comentario a continuación) es usar imágenes de LaunchStoryboard con cordova-plugin-splashscreen para reemplazar las imágenes de lanzamiento heredadas, utilizadas por Cordova por defecto. Para hacerlo, agregue lo siguiente a la plataforma iOS en config.xml :

<platform name="ios"> <splash src="res/screen/ios/Default@2x~iphone~anyany.png" /> <splash src="res/screen/ios/Default@2x~iphone~comany.png" /> <splash src="res/screen/ios/Default@2x~iphone~comcom.png" /> <splash src="res/screen/ios/Default@3x~iphone~anyany.png" /> <splash src="res/screen/ios/Default@3x~iphone~anycom.png" /> <splash src="res/screen/ios/Default@3x~iphone~comany.png" /> <splash src="res/screen/ios/Default@2x~ipad~anyany.png" /> <splash src="res/screen/ios/Default@2x~ipad~comany.png" /> <!-- more iOS config... --> </platform>

Luego cree las imágenes con las siguientes dimensiones en res/screen/ios (elimine las existentes):

Default@2x~iphone~anyany.png - 1334x1334 Default@2x~iphone~comany.png - 750x1334 Default@2x~iphone~comcom.png - 1334x750 Default@3x~iphone~anyany.png - 2208x2208 Default@3x~iphone~anycom.png - 2208x1242 Default@3x~iphone~comany.png - 1242x2208 Default@2x~ipad~anyany.png - 2732x2732 Default@2x~ipad~comany.png - 1278x2732

Una vez que se eliminan las barras negras, hay otra cosa que debe abordar el iPhone X: la barra de estado es más grande que 20px debido a la "muesca", lo que significa que cualquier contenido en la parte superior de su aplicación Cordova se oscurecerá. :

En lugar de codificar un relleno en píxeles, puede manejar esto automáticamente en CSS utilizando las nuevas constantes safe-area-inset-* en iOS 11.

Nota: en iOS 11.0, la función para manejar estas constantes se llamaba constant() pero en iOS 11.2 Apple la renombró como env() ( ver aquí ), por lo tanto, para cubrir ambos casos, debe sobrecargar la regla CSS con ambos y confiar en Mecanismo de respaldo CSS para aplicar el apropiado:

body{ padding-top: constant(safe-area-inset-top); padding-top: env(safe-area-inset-top); }

El resultado es el deseado: el contenido de la aplicación cubre la pantalla completa, pero la "muesca" no lo oculta:

He creado un proyecto de prueba de Cordova que ilustra los pasos anteriores: webview-test.zip

Notas:

Botones de pie de página

  • Si su aplicación tiene botones de pie de página (como los míos), también necesitará aplicar safe-area-inset-bottom para evitar que se superpongan con el botón de inicio virtual en el iPhone X.
  • En mi caso, no pude aplicar esto a <body> ya que el pie de página está en una posición absoluta, por lo que necesitaba aplicarlo directamente al pie de página:

.toolbar-footer{ margin-bottom: constant(safe-area-inset-bottom); margin-bottom: env(safe-area-inset-bottom); }

cordova-plugin-statusbar

  • El tamaño de la barra de estado ha cambiado en el iPhone X, por lo que las versiones anteriores de cordova-plugin-statusbar muestran incorrectamente en el iPhone X
  • Mike Hartington ha creado esta solicitud de extracción que aplica los cambios necesarios.
  • Esto se fusionó con la versión [email protected] , así que asegúrese de estar utilizando al menos esta versión para aplicar a insertos de áreas seguras

Pantalla de bienvenida

  • Las restricciones del guión gráfico de LaunchScreen cambiaron en iOS 11 / iPhone X, lo que significa que la pantalla de bienvenida parecía "saltar" en el lanzamiento al usar versiones existentes del complemento ( ver aquí ).
  • Esto se capturó en el informe de error CB-13505 , se corrigió PR cordova-ios#354 y se publicó en [email protected] , así que asegúrese de estar utilizando una versión reciente de la plataforma cordova-ios .

orientación del dispositivo

  • Cuando se usa UIWebView en iOS 11.0, la rotación de vertical> horizontal> vertical hace que el safe-area-inset no se vuelva a aplicar, lo que hace que la muesca jms nuevamente el contenido (como se destaca por jms en un comentario a continuación).
  • También sucede si la aplicación se inicia en horizontal y luego se gira a vertical
  • Esto no sucede cuando se usa WKWebView a través de cordova-plugin-wkwebview-engine .
  • Informe de radar: http://www.openradar.me/radar?id=5035192880201728
  • Actualización : esto parece haberse solucionado en iOS 11.1

Como referencia, esta es la edición original de Cordova que abrí que captura esto: https://issues.apache.org/jira/browse/CB-13273


Si instala versiones más recientes de ionic nivel mundial, puede ejecutar ionic cordova resources y generará todas las imágenes de pantalla de bienvenida junto con los tamaños correctos.



Tenga en cuenta que este artículo: https://medium.com/the-web-tub/supporting-iphone-x-for-mobile-web-cordova-app-using-onsen-ui-f17a4c272fcd tiene diferentes tamaños que los anteriores y cordova página de complemento:

Default@2x~iphone~anyany.png (= 1334x1334 = 667x667@2x) Default@2x~iphone~comany.png (= 750x1334 = 375x667@2x) Default@2x~iphone~comcom.png (= 750x750 = 375x375@2x) Default@3x~iphone~anyany.png (= 2436x2436 = 812x812@3x) Default@3x~iphone~anycom.png (= 2436x1242 = 812x414@3x) Default@3x~iphone~comany.png (= 1242x2436 = 414x812@3x) Default@2x~ipad~anyany.png (= 2732x2732 = 1366x1366@2x) Default@2x~ipad~comany.png (= 1278x2732 = 639x1366@2x)

Cambié el tamaño de las imágenes como se muestra arriba y actualicé la plataforma ios y cordova-plugin-splashscreen a la última y el flash a la pantalla blanca después de que se solucionó un segundo problema. Sin embargo, la imagen inicial de spash tiene un borde blanco en la parte inferior ahora.


Para una reparación manual de un proyecto cordova existente

Las barras negras

Agregue esto a su archivo info.plist . La reparación de la imagen de lanzamiento es un problema separado, es decir, cómo agregar una imagen de lanzamiento de iPhoneX

<key>UILaunchStoryboardName</key> <string>CDVLaunchScreen</string>

Las barras blancas

Establecer viewport-fit = cover en la metaetiqueta

<meta name="viewport" content="initial-scale=1, width=device-width, height=device-height, viewport-fit=cover">


Solución para el problema de rotación de pantalla del iPhone X / XS

En iPhone X / XS, una rotación de pantalla hará que la altura de la barra de encabezado use un valor incorrecto, porque el cálculo de safe-area-inset- * no reflejaba los nuevos valores a tiempo para la actualización de la interfaz de usuario. Este error existe en UIWebView incluso en el último iOS 12. Una solución alternativa es insertar un margen superior de 1px y luego revertirlo rápidamente, lo que hará que se recalcule inmediatamente safe-area-inset- *. Una solución un tanto fea, pero funciona si tiene que quedarse con UIWebView por una razón u otra.

window.addEventListener("orientationchange", function() { var originalMarginTop = document.body.style.marginTop; document.body.style.marginTop = "1px"; setTimeout(function () { document.body.style.marginTop = originalMarginTop; }, 100); }, false);

El propósito del código es hacer que document.body.style.marginTop cambie ligeramente y luego lo revierta. No necesariamente tiene que ser "1px". Puede elegir un valor que no haga que su interfaz de usuario parpadee pero cumpla su propósito.