[英]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.