最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談關于如何檢測iOS14本地網絡權限的一些思路

 更新時間:2020年09月18日 15:42:48   作者:asml  
這篇文章主要介紹了淺談關于如何檢測iOS14本地網絡權限的一些思路,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前戲

蘋果iOS 14針對本地局域做了一些權限限制,詳情見鏈接:https://developer.apple.com/videos/play/wwdc2020/10110/

wwdc翻譯過來湊字數(shù)的

什么是本地網絡?

這里的本地網絡其實就是我們常說的局域網,是將設備接入路由器以后形成的網絡,設備可以通過這張網絡互相通信,如我們的設備發(fā)現(xiàn)、設備綁定、局域網優(yōu)先等功能都是使用的本地網絡。

從 iOS 13 開始,應用想要獲得當前連接到的 Wi-Fi 名稱,那就必須要獲得定位權限。因為通過識別 Wi-Fi 名稱, 應用就能輕松地在你和周圍的人之間建立大數(shù)據(jù)網絡。但是不給定位權限不代表應用就沒有辦法跟蹤你了,因為應用可以通過本地網絡里的設備進行跟蹤。

為什么需要向用戶申請權限?

和iOS 13獲取WiFi名稱需要通過定位權限類似,蘋果加強了對用戶隱私安全權限,這里也是類似的問題。在過去的 iOS 版本中,應用可以隨意掃描本地網絡中的設備,因此應用就可以很輕松地得到本地網絡里所有設備的名稱和 MAC 地址。MAC 地址是一種確認網絡設備位置的地址,每個網卡都有一個唯一的 MAC 地址,加上 MAC 地址也具有唯一性,設備廠商會按照一定的規(guī)律分配 MAC,所以不同的局域網都是獨一無二可以識別的。比方說,你從線下渠道買了個新相機,拍完照片利用相機自帶的 Wi-Fi 將照片導入到手機上。這時候帶有某個推廣模塊的應用對局域網發(fā)起了一次掃描,識別到了一個新的設備,推廣模塊會將相機的 MAC 地址上傳了云端,進行簡單的識別對比以后,很容易知道這個 MAC 地址屬于相機。這樣帶有推廣模塊的應用都會在畫像里給你加上「相機用戶」這樣的標簽,當你下次打開帶有同一個推廣模塊的購物應用時,你就會看到推薦了一堆和相機有關的東西。

那些應用需要使用本地網絡?

  • 利用本地網絡進行設備發(fā)現(xiàn)
  • 利用本地網絡進行數(shù)據(jù)傳輸
  • 網絡調試工具

影響范圍

主要影響無法使用Socket或者Bonjour做一些局域網的發(fā)現(xiàn),數(shù)據(jù)傳輸。

對局域網應用如:智能家居類,局域網游戲,網絡測試工具等等。本人測試了下其實也沒有那么大,因為發(fā)現(xiàn)這個開關,App下次啟動后可能不會生效,暫時未定位原因。

怎么解決?

相信很多人都很奇怪為什么不整個權限申請或狀態(tài)查詢的接口,在翻了一些資料后發(fā)現(xiàn),居然真的沒有。 鏈接:https://developer.apple.com/forums/tags/wwdc20-10110

很無奈!

大部分應用使用局域一般使用Socket或者Bonjour做一些局域的發(fā)現(xiàn),數(shù)據(jù)傳輸。說在調用的時候會出現(xiàn)code:65 desc:no route to host。這是其實就是所謂的無本地網絡權限。但是我在測試時發(fā)現(xiàn)有時候即使是關掉本地網絡權限的開關,也能正常的使用UDP、TCP。簡直不敢信!難道iOS 14也會想iOS 13一開始出來一樣各種坑滿天飛?

這里的思路是

  • 通過接口獲取本機的IP地址
  • 使用(SimplePing)來ping手機的IP

整個流程的大概耗時在0.13-0.2秒之間,大部分在0.17秒左右??赡芎臅r還能接受。但是不知道某些路由器是否可以設置禁止ping。如果有那就炸裂了。 下面上簡單的代碼

- (void)viewDidLoad {
  [super viewDidLoad];
  // Do any additional setup after loading the view.
  NSDictionary *router = [LDSRouterInfo getRouterInfo];
  pinger = [[SimplePing alloc] initWithHostName:router[@"ip"]];
  pinger.delegate = self;
  [self->pinger start];
  
}
- (void)simplePing:(SimplePing *)pinger didStartWithAddress:(NSData *)address {
  if (timer) {
    return;
  }
  timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue());
  dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
  dispatch_source_set_event_handler(timer, ^{
    [pinger sendPingWithData:nil];
  });
  dispatch_resume(timer);
}

- (void)simplePing:(SimplePing *)pinger didSendPacket:(NSData *)packet sequenceNumber:(uint16_t)sequenceNumber {
  NSLog(@"可以使用局域網");
}

- (void)simplePing:(SimplePing *)pinger didFailToSendPacket:(NSData *)packet sequenceNumber:(uint16_t)sequenceNumber error:(NSError *)error {
  if (error.code == 65) {//no route to host
    NSLog(@"不可以使用局域網");
  }
}

友情提示

  • 調上面接口可以觸發(fā)首次啟動本地網絡權限的系統(tǒng)彈窗
  • 不知道某些路由器是否可以設置禁止ping
  • 整理流程在iPhone 6sp耗時130-200毫秒之間。平均值在160毫秒左右
  • 上面代碼未正式上線,本人也在測試中,請酌情使用。

demo

到此這篇關于淺談關于如何檢測iOS14本地網絡權限的一些思路的文章就介紹到這了,更多相關檢測iOS14本地網絡權限內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 總結iOS實現(xiàn)漸變顏色的三種方法

    總結iOS實現(xiàn)漸變顏色的三種方法

    這篇文章主要給大家總結了iOS實現(xiàn)漸變顏色的三種方法,分別是利用CAGradientLayer實現(xiàn)漸變、Core Graphics相關方法實現(xiàn)漸變以及用CAShapeLayer作為layer的mask屬性實現(xiàn),大家可以根據(jù)自己的需要選擇使用,下面來一起看看吧。
    2016-10-10
  • 淺談Xcode 開發(fā)工具 XCActionBar

    淺談Xcode 開發(fā)工具 XCActionBar

    本文主要給大家簡單講解了Xcode的開發(fā)工具 XCActionBar的介紹與使用方法,非常的全面實用,有需要的小伙伴可以參考下。
    2015-11-11
  • 淺談iOS UIWebView對H5的緩存功能

    淺談iOS UIWebView對H5的緩存功能

    本篇文章主要介紹了淺談iOS UIWebView對H5的緩存功能,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • iOS開發(fā)學習 ViewController使用示例詳解

    iOS開發(fā)學習 ViewController使用示例詳解

    這篇文章主要為大家介紹了iOS開發(fā)學習 ViewController使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • iOS指紋驗證TouchID應用學習教程2

    iOS指紋驗證TouchID應用學習教程2

    這篇文章主要為大家詳細iOS指紋驗證TouchID應用學習教程的第一篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Mac Charles抓包工具詳細介紹

    Mac Charles抓包工具詳細介紹

    這篇文章主要介紹了 Mac Charles抓包工具詳細介紹的相關資料,這簡單介紹下如何安裝,使用等基礎知識,需要的朋友可以參考下
    2016-12-12
  • iOS實現(xiàn)帶指引線的餅狀圖效果(不會重疊)

    iOS實現(xiàn)帶指引線的餅狀圖效果(不會重疊)

    餅狀圖對大家來說應該都不陌生,下面這篇文章主要給大家介紹了關于iOS實現(xiàn)帶指引線的餅狀圖效果(不會重疊)的相關資料,文章通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2018-04-04
  • iOS MRC 下 block 循環(huán)引用問題實例講解

    iOS MRC 下 block 循環(huán)引用問題實例講解

    本文通過文字說明加代碼的形式給大家介紹了iOS MRC 下 block 循環(huán)引用問題,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-12-12
  • iOS 13適配匯總(推薦)

    iOS 13適配匯總(推薦)

    這篇文章主要介紹了iOS 13適配匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • iOS 攔截重定向302跳轉的方法詳解

    iOS 攔截重定向302跳轉的方法詳解

    這篇文章主要介紹了iOS 攔截重定向302跳轉的方法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論

乐都县| 庆安县| 尤溪县| 杂多县| 根河市| 江安县| 阳朔县| 会昌县| 白河县| 廉江市| 万荣县| 古丈县| 洱源县| 宁化县| 子洲县| 洛浦县| 磴口县| 登封市| 邵东县| 仁布县| 吴堡县| 阿图什市| 阳信县| 西和县| 阳泉市| 崇义县| 伊川县| 亳州市| 拜泉县| 长治县| 大荔县| 合川市| 临朐县| 和田县| 建瓯市| 白河县| 海盐县| 南华县| 上虞市| 宁乡县| 西畴县|