uni-app开发经验分享十一: uniapp iOS云打包修改权限提示语

  • A+
所属分类:Web前端
摘要

打包提交appstore如果用到了如下权限需要修改提示语,详细描述使用这个权限的原因,如不修改提示语appstore审核可能会被拒绝。
Apple的原则是,如果一个app想要申请用户同意某个隐私信息访问许可,需要给用户明确的申请权限的原因,能给用户带来什么价值。
所以要求开发者填写这个原因,并且在iOS向手机用户弹出是否允许app访问某隐私信息时,会同时展示开发者填写的这个描述,以帮助用户判断,是否有必要同意这个app访问隐私信息。

打包提交appstore如果用到了如下权限需要修改提示语,详细描述使用这个权限的原因,如不修改提示语appstore审核可能会被拒绝。
Apple的原则是,如果一个app想要申请用户同意某个隐私信息访问许可,需要给用户明确的申请权限的原因,能给用户带来什么价值。
所以要求开发者填写这个原因,并且在iOS向手机用户弹出是否允许app访问某隐私信息时,会同时展示开发者填写的这个描述,以帮助用户判断,是否有必要同意这个app访问隐私信息。

iOS上的隐私信息包括:

  • 通讯录 NSContactsUsageDescription
  • 麦克风 NSMicrophoneUsageDescription
  • 相机 NSCameraUsageDescription
  • 相册(访问) NSPhotoLibraryUsageDescription
  • 相册(保存图片到相册) NSPhotoLibraryAddUsageDescription
  • 定位(使用时获取地理位置) NSLocationWhenInUseUsageDescription
  • 定位(持续获取地理位置) NSLocationAlwaysUsageDescription

新版本IOS 11.3上对定位权限进行了合并 使用定位需要增加一个新的声明

  • 定位(iOS11.3及以上版本) NSLocationAlwaysAndWhenInUseUsageDescription
  • 蓝牙 NSBluetoothPeripheralUsageDescription
  • 语音转文字 NSSpeechRecognitionUsageDescription
  • 日历 NSCalendarsUsageDescription

设置方法如下:
使用视图方式打开manifest.json文件, 在plus->distribute->apple节点下添加plistcmds,数据类型为Array,
开发者可复制以下代码到manifest.json文件中并根据实际使用情况进行增减

"plus": { "distribute": { "apple": { "plistcmds": [ "Set :NSContactsUsageDescription 说明读取用户通讯录的原因", "Set :NSMicrophoneUsageDescription 说明使用麦克风的原因", "Set :NSPhotoLibraryUsageDescription 说明读取用户相册的原因", "Set :NSCameraUsageDescription 说明使用用户相机的原因", "Set :NSPhotoLibraryAddUsageDescription 说明向用户相册添加图片的原因", "Set :NSLocationAlwaysUsageDescription 说明持续获取用户地理位置的原因", "Set :NSLocationWhenInUseUsageDescription 说明使用用户地理位置的原因", "Set :NSLocationAlwaysAndWhenInUseUsageDescription 说明使用用户地理位置的原因" ] } } } 

更新:HBuilderX1.1起,在manifest可视化视图-模块权限配置里,可方便的输入提示语,不用再进代码视图操作

uni-app开发经验分享十一: uniapp iOS云打包修改权限提示语

注意:

  • 通过上面方法修改提示语后需要重新打包,调试基座的提示语不会变化。

举例说明

比如一个外卖应用,获取定位后需要展示附近的美食信息。那么,相应的定位权限描述,应当是类似“获取定位信息用于为用户提供附近的美食信息”这样的描述。而不应当是,“获取用户当前位置信息”这种没有明确描述定位用处的信息。