记录HbuilderX 编译器升级对于云打包的变化

HBuilderX3.6.11版本后,App打包默认不包含Barcode、Camera&Gallery、Orientation、Record等敏感模块,需手动在manifest.json配置。存储权限和设备信息权限申请策略调整,支持none、once、always三种模式,默认值更新。用户拒绝权限时有引导提示,提示语可在manifest.json配置。
摘要由CSDN通过智能技术生成

新增 默认不加载的模块

为了避免App隐私合规检测报包含麦克风、相机/相册、运动等敏感权限,从HBuilderX3.6.11版本开始,将App打包默认包含的Barcode(扫码)、Camera&Gallery(相机和相册)、Orientation(传感器)、Record(录音)等调整为独立功能模块。
更新到HBuilderX3.6.11版本后云端打包时默认将不会包含以上功能,需在manifest.json的“App模块配置”中手动勾选要使用的模块。
Orientation(传感器)将不再维护,在manifest.json中不提供可视化界面配置,如需继续使用,请在manifest.json的“源码视图”中手动在 “app-plus” -> “modules” 添加 “Orientation”,如下:

"app-plus" : {
	"modules" : {
		"Orientation": {
			"description": "传感器"
		}
	}
}

文档链接

存储权限,获取设备信息权限

说明
Android平台从6.0(API23)开始系统对权限的管理更加严格,所有涉及敏感权限都需要用户授权允许才能获取。
因此一些应用基础业务逻辑需要的权限会在应用启动时申请,并引导用户允许。

读写手机存储权限
HBuilderX3.5.5+版本调整申请读写手机存储权限策略默认值为 none

应用需要保存运行状态等数据到手机SD卡中,启动时需要获取读写手机存储权限,此权限为基础权限,影响真机运行、wgt升级。

注意:此权限目标不是要访问相册,是Android把相册写入权限和存储写入权限合并在一个权限里了。
注意:wgt热更新是应用市场不乐见的,不建议明显提示给用户或告知应用市场。
申请读写手机存储需要用户授权,会弹出如下提示框:

HBuilderX2.4.2及以下版本,用户拒绝此权限则直接退出应用。
HBuilderX2.4.3+版本,用户拒绝后键会弹出以下提示框引导用户重新允许

点击“取消”退出应用;
点击“确定”重新弹出授权框,如果用户已经勾选“不再询问”则打开应用的设置界面。
此提示语可在manifest.json中配置
HBuilderX2.5.0+开始支持配置应用启动时申请获取手机存储权限,支持以下三种策略
none
应用启动时不申请
once
应用第一次启动时申请,用户可以拒绝
always
应用每次启动都申请,并且用户必须允许,用户拒绝时会弹出以下提示框引导用户重新允许
源码视图配置
打开manifest.json文件,切换到“源码视图”项

uni-app项目
在"app-plus" -> “distribute” -> “android” 节点下添加 permissionExternalStorage 节点
5+ App项目
在 “plus” -> “distribute” -> “google” 节点下添加 permissionExternalStorage 节点
permissionExternalStorage节点数据格式如下:

"permissionExternalStorage": {  
    "request": "always",  
    "prompt": "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"  
 }

request
字符串类型,必填,申请读写手机存储权限策略,可取值none、once、always。
HBuilderX3.5.5+版本默认值调整为none
HBuilderX3.0以下版本默认值always
prompt
字符串类型,可选,用户拒绝时弹出提示框上的内容。
默认值为:应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。
国际化配置参考:https://ask.dcloud.net.cn/article/35860#strings
设置自定义键名称为“dcloud_permission_write_external_storage_message”。
保存后提交云端打包生效

访问设备信息权限
Android平台应用获取设备信息(如IMEI、IMSI等),统计、推送、广告等业务功能依赖这些信息。
此权限不是必选,拒绝此权限不影响App端基座运行。但拥有本权限可以给开发者提供更准确的统计报表。
而申请获取这些信息需要用户授权,会弹出如下提示框:

华为手机应用的设置中权限列表中为“电话”权限
部分手机设备对该权限描述为“拨打电话,管理电话权限”
HBuilderX2.3.8+开始支持配置应用启动时申请获取设备信息权限,支持以下三种策略

none
应用启动时不申请
once
应用第一次启动时申请,用户可以拒绝
always
应用每次启动都申请,并且用户必须允许,用户拒绝时会弹出以下提示框引导用户重新允许

此提示框删的文本可自定义,参考下面的prompt字段
HX3.5.5+版本开始默认策略为none,即应用启动不再主动申请

源码视图配置
打开manifest.json文件,切换到“源码视图”项

uni-app项目
在 “app-plus” -> “distribute” -> “android” 节点下添加 permissionPhoneState 节点
5+ App项目
在 “plus” -> “distribute” -> “google” 节点下添加 permissionPhoneState 节点
permissionPhoneState节点数据格式如下:

"permissionPhoneState": {  
    "request": "always",  
    "prompt": "为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。"  
 }

request
字符串类型,必填,申请设备信息权限策略,可取值none、once、always。默认值为once。
prompt
字符串类型,可选,用户拒绝时弹出提示框上的内容。
默认值为:为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。
国际化配置参考:https://ask.dcloud.net.cn/article/35860#strings
设置自定义键名称为“dcloud_permission_read_phone_state_message”。
保存后提交云端打包生效

离线打包提示语配置及弹窗配置。
提示语配置
在主项目的strings.xml中添加如下字段。strings.xml位于 项目目录/src/main/res/values下,如果文件或文件夹不存在,直接新建即可。

存储权限提示语配置

存储权限提示语 读取手机状态权限配置 读取手机状态权限提示语 弹窗配置 在androidManifest.xml的application节点下添加如下字段。

存储权限弹窗配置

value可取值为 none、once、always。

读取手机状态弹窗配置

value可取值为 none、once、always。

补充
沟通发现,部分开发者在main.js里面调用了plus.device.getInfo这类方法。

但是其实API操作与permissionExternalStorage设置无关,permissionExternalStorage用于设置应用内部逻辑是否申请访问SD卡权限

开发者是因为在启动的时候调用API触发了权限申请,误以为permissionExternalStorage设置无效(其实设置是生效的)。

其它API操作会根据功能需求来申请权限,比如操作系统相册也会申请访问SDK卡权限、定位操作会申请定位权限等
Android平台隐私与政策提示框配置方法

文档原文链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值