角/离子不适用于iOS 10

马吕斯·班西拉(Marius Bancila)

我有一个使用Ionic框架开发的Cordova应用程序,该应用程序过去在iOS上运行良好,但在iOS 10上却无法运行。当我在模拟器中启动应用程序时,没有Angular特定的工作(绑定,事件等)。这是屏幕截图。

在此处输入图片说明

如果从Safari连接开发人员工具,则控制台中将看不到任何内容。但是,如果按“刷新”按钮,并且重新加载了索引页面,则一切将开始正常工作。

我怀疑这与iOS 10上的内容安全策略有关。我的Content-Security-Policy元标记如下所示:

<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 *">

我尝试了各种建议,这些建议与其他人遇到的类似问题有关,但没有任何帮助。任何建议,不胜感激。

马吕斯·班西拉(Marius Bancila)

我可以正常工作了,问题出在使用Google Analytics(分析)的工厂。代码(部分)如下所示:

(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
            }
         }]);
}());

这是从模块的run块中调用的analytics不可用。解决方法是将其传递$window给工厂以供使用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;
         }]);
}());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章