我正在開發一個應用程序,它有一個小的調整。它會顯示給定網址的預覽(如Facebook,whatsapp)。但如果「用戶提供的」網址位於HTTP中,則在打開ATS時無法加載預覽。所以我通過使用NSAllowsArbitraryLoads關閉了整個HTTPS流量。有沒有什麼辦法允許啓用ATS的http?允許HTTP而不禁用iOS中的ATS
0
A
回答
0
According to Apple,如果您針對較舊的SDK構建了iOS 8或更早版本,則ATS將被禁用。我不知道這意味着什麼,但我猜測它是目標構建設置架構,基礎SDK - 而不是部署目標設置。
This video有最近在WWDC 2016年宣佈更改ATS的細節,2017年開始,蘋果將如果您使用以下任一ATS例外拒絕您的應用程序和你不能提供合理的這樣做的理由:
- NSAllowsArbitraryLoads
- NSExceptionAllowsInsecureHTTPLoads
- NSExceptionMinimumTLSVersion
但是,看來你將被允許使用一個名爲新的異常:
- NSAllowsArbitraryLoadsInWebContent
這意味着一個WKWebView控制仍然可以加載HTTP內容。不知道這是否也適用於UIWebView。
就你而言,我猜你沒有使用WKWebView,所以你最好開始研究你的「合理理由」。或者堅持使用iOS 8 SDK。
0
您可以添加例外(NSExceptionDomains
)以允許特定域的HTTP。請參閱documentation。
但是,如果用戶給出的URL可以是任何URL,那麼除了使用NSAllowsArbitraryLoads
之外沒有別的辦法。
0
開放Info.plist
源代碼,那麼您要補充一點:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
<key>aWebsite.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
<key>anotherWebsiteIfYouWant.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
這樣你就不必完全禁用ATS。
相關問題
- 1. iOS中的ATS和http 10
- 2. 允許iOS中
- 3. NSCurl ATS工作,IOS 9不
- 4. 應用運輸安全阻止我的網站允許ATS
- 5. 禁止「標識在Android中不允許」
- 6. 訪問控制 - 允許來源的HTTP DELETE不允許來源
- 7. robot.txt允許而不是Disallow
- 8. iOS約束不允許使用乘數
- 9. iOS的UIWebview,禁用雙擊,允許單擊水龍頭WKWebview
- 10. 角$ HTTP CORS 405不允許的方法
- 11. iOS 11使用ATS從HTTP加載圖片
- 12. 訪問控制 - 允許來源不允許訪問http:// localhost
- 13. 允許在Firefox中禁用複選框
- 14. 的.htaccess 「從ENV允許」 禁用SSLRequire
- 15. HTTP/1.1 405不允許作爲迴應
- 16. 阿卡HTTP不允許在MacOS
- 17. Android 8:Cleartext HTTP流量不允許
- 18. 允許用戶啓用/禁用選項
- 19. iOS 9 ATS白名單
- 20. iOS 9 ATS和Firebase REST
- 21. 爲什麼Perl允許使用TOR而不是https的http網站?
- 22. 陣列允許不允許
- 23. ActionBarSherlock是否允許啓用/禁用ActionBar.Tab?
- 24. Nginx - 允許HTTP爲IP
- 25. Uri.IsWellFormedUriString允許HTTP:// HTTP:// <url>
- 26. 允許iOS中的特殊字符
- 27. ios + icloud:com.apple.developer.ubiquity-container-identifiers值不允許
- 28. iOS 7.1不允許動態tableview高度
- 29. 在POST視圖中不允許使用Django錯誤http方法
- 30. 我如何使不允許列允許空和允許空列不允許空
你打算如何生成預覽?使用WKWebView控件?如果是這樣,請等待Apple發佈NSAllowsArbitraryLoadsInWebContent並使用它。否則,您是否可以在服務器上生成預覽並將它們作爲圖像發送給您的應用程序? –