iOS 11插件和权限更改(Xamarin)

简介: iOS 11在访问设备上的某些功能时引入了许多有关权限的有趣更新。 我试图在Xamarin.Forms应用程序中使用Geolocator Plugin访问用户位置时,首先注意到这些更改。

iOS 11在访问设备上的某些功能时引入了许多有关权限的有趣更新。 我试图在Xamarin.Forms应用程序中使用Geolocator Plugin访问用户位置时,首先注意到这些更改。 令我惊讶的是,没有发生什么。 在进一步调查应用程序的输出后,我注意到一个消息,说明我错过了什么!


这对您的应用程序意味着什么?它与您可能正在使用的任何插件有什么关系? 这篇文章解释了我在使用两个非常常见的插件Xam.Plugin.Geolocator和Xam.Plugin.Media时发现的内容。

更改位置权限

开发人员必须在iOS 11的Info.plist文件中同时包含NSLocationWhenInUseUsageDescription和NSLocationAlwaysAndWhenInUseUsageDescription。大多数开发人员也希望支持早期版本的iOS,这意味着您还需要包含第三个键NSLocationAlwaysUsageDescription。 NSLocationAlwaysAndWhenInUsageDescription键是iOS 11的新功能,可帮助开发人员采用新的推荐方法来请求权限。 Apple建议应用程序首先请求使用“正在使用”访问级别的位置使用权限。 然后,在获得信任的一段时间之后,应用程序可以更自信地请求始终访问级别。 重要的是要注意,应用程序只能请求“始终”级别一次。

以下是更新的info.plist文件的相关部分看起来像使用Geolocator示例应用程序:

点击(此处)折叠或打开

  1. key>NSLocationAlwaysUsageDescription/key>
  2. string>Need location for geolocator plugin./string>
  3.  
  4. key>NSLocationAlwaysAndWhenInUseUsageDescription/key>
  5. string>Need location for geolocator plugin./string>
  6.  
  7. key>NSLocationWhenInUseUsageDescription/key>
  8. string>Need location for geolocator plugin./string>

对照片权限的更改

在以前的iOS版本的info.plist中需要一个单键NSPhotoLibraryUsageDescription,用于访问用户的照片库。 iOS 11添加了一个新密钥,以便从只读访问权限分离只读访问。 如果您的应用程序需要将图像保存到照片库中,则需要新的NSPhotoLibraryAddUsageDescription键,而从照片库读取图像需要旧的NSPhotoLibraryUsageDescription键。

更新您的Xamarin插件

The Xamarin Plugins have been very popular in the community ever since they were announced. The Geolocator, Media and Permissions plugins are ready for your apps and iOS 11. If your not familiar with Plugins, be sure to check out the guide in the Xamarin Developer Center where you can learn more about which ones are available and how to create them.Xamarin插件自从宣布以来一直在社区中非常受欢迎。 GeolocatorMediaPermissions插件已经为您的应用和iOS 11准备了。如果您不熟悉插件,请务必查看Xamarin开发人员中心的指南,您可以在其中了解更多有关哪些可用的内容以及如何创建它们。

目录
相关文章
|
JSON JavaScript 前端开发
iOS小技能: 开发 uni-app 原生插件(支持iOS Extension)
术语:uni原生插件指的是将`原生开发的功能按照规范封装成插件包`,然后即可在 uni-app 前端项目中通过js调用原生能力。
1118 0
iOS小技能: 开发 uni-app 原生插件(支持iOS Extension)
|
6月前
|
缓存 小程序 Android开发
mPaaS问题之iOS调用插件的时候提示没有配置mpaas. Config文件如何解决
mPaaS配置是指在mPaaS平台上对移动应用进行的各项设置,以支持应用的定制化和优化运行;本合集将提供mPaaS配置的操作指南和最佳实践,助力开发者高效管理和调整移动应用的设置。
133 1
|
iOS开发
iOS 判断是否开启系统通知权限
iOS 判断是否开启系统通知权限
374 0
|
iOS开发 开发者
iOS开发- 注释插件VVDocumenter-Xcode in Xcode8
iOS开发- 注释插件VVDocumenter-Xcode in Xcode8
91 0
iOS开发- 注释插件VVDocumenter-Xcode in Xcode8
|
JSON JavaScript 前端开发
iOS小技能: 开发 uni 原生插件(支持iOS Extension)
背景:app采用uni实现 需求: iOS App前台后台离线(杀死情况下)推送语音播报(到账xx元、收款播报、自定义推送铃)。 实现方式:uni-app 原生插件(支持iOS Extension)
471 0
iOS小技能: 开发 uni 原生插件(支持iOS Extension)
|
自然语言处理 前端开发 安全
iOS-底层原理 31:LLVM编译流程 & Clang插件开发
iOS-底层原理 31:LLVM编译流程 & Clang插件开发
592 0
iOS-底层原理 31:LLVM编译流程 & Clang插件开发
|
移动开发 开发框架 前端开发
iOS--React Native视频播放器插件
React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用,因此熟悉Web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域。
342 0
|
移动开发 开发框架 前端开发
iOS--React Native浏览器插件
React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用,因此熟悉Web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域。
122 0
|
移动开发 开发框架 缓存
iOS--React Native网络请求插件
React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用,因此熟悉Web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域。
155 0