国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

如何判斷iOS應用是否開放HTTP權限呢

2020-02-19 15:48:32
字體:
來源:轉載
供稿:網友

我們在開發程序的時候都要對iOS進行判斷,那么程序員應該怎么判斷iOS應用是否開放HTTP權限呢?武林技術頻道小編帶大家進入下文學習。

從 iOS9 起,新特性要求 App 訪問網絡請求,要采用 HTTPS 協議。但是能不能判斷開發者是否允許 HTTP 的請求,這樣就不會在發起請求時候失敗同時彈出以下信息:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

這個需求其實是最近在弄 HTTPDNS 相關的一些東西,只能通過 HTTP 接口請求,但是希望能判斷應用是否允許了 HTTP 的訪問,如果允許才開啟 HTTPDNS 相關的功能。

解決方法比較簡單,其實就是讀取 info.plist 看看 NSAppTransportSecurity 是否為 YES

Objective-C 實現

- (BOOL)isHTTPEnable { if([[[UIDevice currentDevice] systemVersion] compare:@"9.0" options:NSNumericSearch] != NSOrderedAscending){ NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; return [[[infoDict objectForKey:@"NSAppTransportSecurity"] objectForKey:@"NSAllowsArbitraryLoads"] boolValue]; } return YES;}

使用方法:

if ([self isHTTPEnable]) { NSLog(@"HTTP enable");} else { NSLog(@"HTTP disable");}

Swift 實現

func isHTTPEnable() -> Bool { let flag = UIDevice.currentDevice().systemVersion.compare("9.0.0", options: NSStringCompareOptions.NumericSearch) if (flag != .OrderedAscending) { guard let infoDict = NSBundle.mainBundle().infoDictionary else { return false } guard let appTransportSecurity = infoDict["NSAppTransportSecurity"] else { return false } guard let allowsArbitraryLoads = appTransportSecurity["NSAllowsArbitraryLoads"] else { return false } guard let res = allowsArbitraryLoads else { return false } return res as! Bool  } return true}

使用方法:

if self.isHTTPEnable() { print("HTTP enable")} else { print("HTTP disable")}

本文是武林技術頻道小編介紹的如何判斷iOS應用是否開放HTTP權限呢?相信大家都看完了本文的介紹,更多的技術知識,可以繼續關注武林技術頻道!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扶沟县| 桂东县| 赤峰市| 桐庐县| 兴义市| 乳山市| 隆子县| 金乡县| 都江堰市| 遵义县| 怀宁县| 汝阳县| 农安县| 新竹县| 恭城| 璧山县| 泰来县| 迁西县| 贺州市| 五原县| 苍山县| 临朐县| 崇义县| 图木舒克市| 龙海市| 昌吉市| 井陉县| 沽源县| 仁怀市| 婺源县| 股票| 赞皇县| 河源市| 兴国县| 勐海县| 太仓市| 班玛县| 花莲市| 宝鸡市| 威信县| 河池市|