![](/img/trans.png)
[英]Focus() is not working in ionic using ios 10 safari browser
[英]angular/ionic not working on iOS 10
我有一个使用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 *">
我已经尝试过与其他人面临的类似问题相关的各种建议,但没有任何帮助。 任何建议都表示赞赏。
我得到了这个工作,问题是使用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;
}]);
}());
我非常感谢您的回答,感谢您分享您的回答作为回复。 我使用ionic2也遇到了同样的问题。 只有白色屏幕显示。 经过大量的搜索和头痛,我添加了一些变化,如添加间隙等。然后我得到几点在ios 10中获得离子构建:
还要确保你们都看看这些选项。 这种错误通常是代码中出现一个小错误的原因。 您需要调试并提供正确的信息。 谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.