成都创新互联网站制作重庆分公司

ios开发网络权限,ios开发网络权限在哪里

关于iOS 14 Local Network权限问题

在iOS 14系统中苹果新增加了本地网络的授权,本地网络(Local Network)是在当app使用Bonjour服务或者访问本地局域网时需要用户授权,如:

公司主营业务:成都网站设计、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出娄星免费做网站回馈大家。

Network.framework(NWBrowser,NWListener.Service)

Foundation(NetService)

MultipeerConnectivity(蓝牙)

Dnssd(发现,发布和解析局域网或广域网上的网络服务)

Bonjour主要做本地通信和智能交互的。

通常我们是通过 NSNetService 和 NSNetServiceBrowser 来使用 Bonjour 的,前者用于建立与发布 service,后者用于监听查询网络上的 service。

在我们的项目中因为使用了第三方KTVCocoaHTTPServer,在查看其中源码发现这个库中使用了NSNetService:

因此在用户第一次启动项目是会弹出本地网络授权的提示。

验证环境:

iPad iOS 14

Xcode 11

通过把本地网路权限关闭去验证是否对项目有影响:

1、我们项目之所以会提示本地网络授权是因为KTVHTTPCache依赖于KTVCocoaHTTPServer,是因为KTVHTTPCache使用的音视频缓存方案:本地实现http service。

在iOS本地开启Local Server服务,然后使用播放控件请求本地Local Server服务,本地的服务再不断请求视频地址获取视频流,本地服务请求的过程中把视频缓存到本地,大体的思路是这样的。而实现loacl Service要基于Bonjour库,通过 Bonjour,一个应用程序 publish 一个网络服务 service,然后网络中的其他程序就能自动发现这个 service,从而可以向这个 service 查询其 ip 和 port,然后通过获得的 ip 和 port 建立 socket 链接进行通信。通常我们是通过 NSNetService 和 NSNetServiceBrowser 来使用 Bonjour 的,前者用于建立与发布 service,后者用于监听查询网络上的 service,因此在iOS14设备上边提示了本地网路授权。

2、为了验证关闭本地网络授权是否会对项目有所影响,先找到KTVHTTPCache库在项目中的缓存目录:tmp-KTVHTTPCache,最新安装的app并没有任何缓存,然后运行app,播放视频再次查看缓存目录下有了视频缓存,目前调研结果是关闭本地网络权限并不会对我们项目产生影响。

使用另外一种方案:

使用IOS原生API ,使用 AVAssetResourceLoader,在不改变 AVPlayer API 的情况下,对播放的音视频进行缓存。

这种方案只能是使用AVPlayer才可以,使用第三方播放器除非它也暴露出了类似于AVAssetResourceLoader这样的协议。

相关三方很多 VIMediaCache

这种方案测试不会提示本地网络授权管理

iOS14 "local network" "网络设备权限" 被拒

We noticed that your app requests the user’s consent to access the local network information, but doesn’t sufficiently explain the use of the local network information in the purpose string.

 iOS14 当 App 要使用 Bonjour 服务时或者访问本地局域网,使用 mDNS 服务等,都需要授权,开发者需要在 Info.plist 中详细描述使用的为哪种服务以及用途.

 如果应用中需要使用 LocalNetwork 需要在 Info.plist 中配置 Privacy - Local Network Usage Description

苹果官方文档说明

解决办法:

1.Privacy - Local Network Usage Description : "xx"不会连接到您所用网络上的设备,只会检测与您本地网关的连通性.用户也可以在 iOS 设备的设置-隐私-本地网络界面修改 app 的权限设置。

2.更新相关用到此隐私的SDK,一般SDK都已经更新关闭了此权限

怎么开启苹果AppStore访问网络的权限

开启苹果AppStore访问网络的权限:

1、在手机桌面找到”设置“选项,点击进入设置。

2、在设置界面找到”蜂窝移动网络“选项,点击进入。

3、在蜂窝移动网络设置界面下方选择一款软件,并点击。

4、在跳转的页面即可对此软件设置访问网络权限。

【iOS开发笔记】系统权限的获取和请求

iOS开发避免不开系统权限的问题,如何在APP中以更加友好的方式向用户展示系统权限,似乎也是开发过程中指的深思的一件事。

那如何提高用户获取权限的通过率呢?以下几种方式或许是不错的尝试:

上面的只是一些尝试,与本文的主要讲述内容关系不大,接下来我们主要来看一下常用的一些系统权限的状态获取以及主动唤起权限请求的方法。

相机权限

相册权限

日历权限

麦克风权限

推送权限

定位权限

提醒事项权限

通讯录权限

互联网权限

蓝牙权限

引入头文件 #import AVFoundation/AVFoundation.h

引入头文件 #import Photos/Photos.h

引入头文件 #import EventKit/EventKit.h

引入头文件 #import AVFoundation/AVFoundation.h

引入头文件 #import UserNotifications/UserNotifications.h

引入头文件 #import CoreLocation/CoreLocation.h

封装方法调用

TenLocationManager.h

TenLocationManager.m

引入头文件 #import EventKit/EventKit.h

引入头文件

iOS 9.0前 #import AddressBook/AddressBook.h

iOS 9.0后 #import Contacts/Contacts.h

引入头文件 #import CoreTelephony/CTCellularData.h

系统未提供接口供开发者手动请求网络权限,iOS10以上系统,应用首次请求网络会自动弹出,一个应用只弹出一次,卸载也不会重新弹出

引入头文件 #import CoreBluetooth/CoreBluetooth.h

TenBluetoothManager.h

TenBluetoothManager.m


分享文章:ios开发网络权限,ios开发网络权限在哪里
标题URL:http://cxhlcq.com/article/dsiocho.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部