angular / iónico no funciona en iOS 10

Tengo una aplicación Cordova desarrollada con el framework Ionic que solía funcionar bien en iOS, pero en iOS 10 no. Cuando inicio la aplicación en el simulador, nada específico angular funciona (enlaces, events, etc.). Aquí hay una captura de pantalla.

enter image description here

Si adjunto las herramientas de desarrollador de Safari, no puedo ver nada en la console. Sin embargo, si presiono el button Actualizar y la página de índice se vuelve a cargar, todo comienza a funcionar correctamente.

Sospecho que esto está relacionado con la política de security de contenido en iOS 10. Mi metalabel Content-Security-Policy tiene este aspecto:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: file://* * 'unsafe-eval'; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *; media-src *"> 

He intentado varias sugerencias relacionadas con problemas similares que otros han enfrentado, pero nada de ayuda. Cualquier sugerencia es apreciada.

Lo hice funcionar, y el problema era una fábrica que usaba Google Analytics. El código (parcialmente) se veía así:

 (function () { 'use strict'; angular .module('appname.factories') .factory("analyticsFactory", [ function () { var trackInitialize = function () { if (typeof analytics !== undefined) { analytics.startTrackerWithId("..."); } else { console.log("Google Analytics Unavailable"); } }; return { trackInitialize: trackInitialize } }]); }()); 

Esto se llamó desde el bloque de run del module y el analytics no estaba disponible. La solución fue pasar $window a la fábrica para usar analytics .

 (function () { 'use strict'; angular .module('appname.factories') .factory("analyticsFactory", [ '$window', function ($window) { var emptyFn; emptyFn = function () { }; emptyFn['mocked'] = true; var analytics = $window && $window['analytics'] ? $window['analytics'] : { startTrackerWithId: emptyFn, trackView: emptyFn, trackEvent: emptyFn, trackException: emptyFn, }; analytics.trackInitialize = function () { analytics.startTrackerWithId("..."); if (analytics['mocked']) console.log("Google Analytics Unavailable"); }; return analytics; }]); }()); 

Realmente aprecio con su respuesta. Gracias por compartir su respuesta como respuesta. También tengo el mismo problema usando ionic2. Una pantalla blanca solo mostrada. Después de mucha búsqueda y dolor de cabeza, agregué algunos cambios como agregar espacio, etc. Luego obtuve algunos puntos para get una construcción iónica en iOS 10:

  • Metatags CSP. Quítelos si están causando problemas. Errores en su código.
  • Abra las herramientas de desarrollo de safari e inspeccione el dispositivo. Asegúrese de presionar cmd-r para volver a cargar la aplicación. Safari parece perder todos los loggings de errores / console que ocurrieron antes de que las herramientas de desarrollo estuvieran abiertas.
  • Proyectos Iónicos 2. Verifique que haya creado errores de Mecanografía. Es posible que le falten types para modules de terceros.
  • Dale tu código Ejecuta tu código a través de un linter. Puede haber errores que simplemente no estás viendo. Un linter podrá atraparlos por ti. Los proyectos de V2 deben usar las reglas tslint de ionic, y los proyectos de V1 pueden usar eslint.

También asegúrese de que todos miren estas opciones. Este tipo de error a menudo es la causa de un pequeño error en su código. Debe depurar y proporcionar la información correcta. Gracias.