2016-09-17 86 views
1

在iOS 10中,在Safari(有時)或全屏幕Web應用程序(當您將網頁添加到主屏幕時),當存在Firebase後臺連接時,狀態欄網絡活動指示器不停旋轉永遠... iOS中8和iOS 9時火力地堡連接這個指標dissapear,所以用戶不會警告這個小網絡ussage(WebSockets的),如蘋果的UI準則規定: https://developer.apple.com/ios/human-interface-guidelines/ui-controls/progress-indicators/Firebase iOS 10網絡活動指示器不斷旋轉

僅在網絡操作持續時間超過 幾秒鐘時才顯示此指示器。不要顯示快速網絡操作指示器 ,因爲它很可能會在任何人注意到它的存在之前消失,或者 意識到它的通信意圖。

Firebase for iOS 10中是否存在任何配置以避免此指示符?或者它是新蘋果iOS系統中的一個錯誤?

任何幫助將不勝感激。

+0

看來iOS 10可能已經改變了一些與WebSocket的行爲......這可能意味着我們正在回落到可能解釋網絡指標的長輪詢。你可以嘗試像這裏描述的那樣添加CSP到你的頁面(http://stackoverflow.com/questions/39495746/what-needs-to-be-changed-for-websocket-security-for-ios-10-compatibility)和看看這是否會改變行爲? –

+0

謝謝邁克爾,我檢查了safari開發者工具和iPad連接,是的,它默認爲長池,而不是正常的websocket行爲。 –

回答

2

IOS 10更改了與websocket相關的CSP策略的行爲。我將firebase域添加到connect-src CSP,並且工作正常。將*放在default-src中是不夠的,我沒有把它放到成功。 這是改變我的index.html,將連接-SRC CSP政策

<meta http-equiv="Content-Security-Policy" content="img-src * 
'unsafe-eval' 'unsafe-inline' data:; default-src * 'unsafe-eval' 
'unsafe-inline'; connect-src * wss://*.firebaseio.com 'unsafe-eval' 
'unsafe-inline' 'self' "> 

你也可以只改變默認-SRC與此連接到任何域:在previos

default-src * wss://*; 

iOS(8 & 9)如果使用default-src *,則不需要此connect-src。 感謝Michael Lehenbauer爲「輕」