插件图标配置
module.exports = { |
插件内容配置
可以在plugins配置项中配置APP中使用的插件信息,如扫一扫,分享等;
module.exports = { |
可选插件
配置权限声明
为响应国家对App隐私合规的要求,自2021年9月1日起,使用permission可根据app集成的模块配置所需的权限声明及描述文案
注意:
- 标准模板库、自定义模板库都必须配置permission插件,且必须配置内容,最小配置项为”config”: {},否则不集成插件或配置项为空都将集成失败。
- iOS中配置permission插件后,会先删除模板库info.plist中声明的权限,然后将permission中声明的权限写入模板库的info.plist中
配置示例(中文描述请自行修改)
module.exports = { |
模块权限功能对应表
iOS
模块 | 权限 | 字段 | 功能/接口 | |
---|---|---|---|---|
audio | 麦克风 | NSMicrophoneUsageDescription | LightSDK.native.startRecord | |
barcode | 摄像头 | NSCameraUsageDescription | LightSDK.native.scanCode | |
contact | 通讯录 | NSContactsUsageDescription | LightSDK.native.getContactInfo | |
image | 相册 摄像头 |
NSPhotoLibraryUsageDescription NSPhotoLibraryAddUsageDescription NSCameraUsageDescription |
LightSDK.native.imagePicker LightSDK.native.chooseImage LightSDK.native.saveImage |
|
localauth | FaceID | NSFaceIDUsageDescription | LightSDK.native.verifyOpeation | |
mapbase | 定位 | NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription NSLocationAlwaysAndWhenInUseUsageDescription |
LightSDK.native.getLocationOnce LightSDK.native.startLocationUpdate LightSDK.native.stopLocationUpdate LightSDK.native.onLocationChange LightSDK.native.offLocationChange |
|
mapbaidu | 定位 | NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription NSLocationAlwaysAndWhenInUseUsageDescription |
LightSDK.native.getLocation LightSDK.native.getLocationOnce LightSDK.native.startLocationUpdate LightSDK.native.stopLocationUpdate LightSDK.native.onLocationChange LightSDK.native.offLocationChange |
|
maptencent | 定位 | NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription NSLocationAlwaysAndWhenInUseUsageDescription |
LightSDK.native.getLocationOnce LightSDK.native.startLocationUpdate LightSDK.native.stopLocationUpdate LightSDK.native.onLocationChange LightSDK.native.offLocationChange |
|
miniapp | 蓝牙 相册 |
NSBluetoothAlwaysUsageDescription NSBluetoothPeripheralUsageDescription NSPhotoLibraryUsageDescription NSPhotoLibraryAddUsageDescription |
wx.getSystemInfoSync 小程序菜单-反馈 |
|
jsnative | 相册 | NSPhotoLibraryUsageDescription NSPhotoLibraryAddUsageDescription |
image标签-save接口 | |
jsnmapbaidu | 定位 | NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription NSLocationAlwaysAndWhenInUseUsageDescription |
JSN-地图标签组件 | |
calendar | 日历 | NSCalendarsUsageDescription | LightSDK.native.createCalendar LightSDK.native.updateCalendar LightSDK.native.deleteCalendar LightSDK.native.queryCalendar |
Android
模块 | 权限 | 字段 | 功能/接口 | 危险权限说明 | |
---|---|---|---|---|---|
gmubase | 请求网络 杀死进程 获取运行任务 |
android.permission.INTERNET android.permission.ACCESS_NETWORK_STATE android.permission.GET_TASKS android.permission.KILL_BACKGROUND_PROCESSES |
|||
audio | 麦克风 请求网络 |
android.permission.RECORD_AUDIO android.permission.MODIFY_AUDIO_SETTINGS android.permission.INTERNET |
LightSDK.native.startRecord | RECORD_AUDIO:允许程序录制音频,用于通过js接口录制音频 | |
barcode | 摄像头 震动 |
android.permission.CAMERA android.permission.VIBRATE |
LightSDK.native.scanCode | CAMERA:允许访问摄像头,用于打开扫一扫功能接口 | |
contact | 通讯录 | android.permission.READ_CONTACTS | LightSDK.native.getContactInfo | READ_CONTACTS:允许程序读取用户联系人数据,用于通过js接口获取联系人列表 | |
image | 摄像头 写文件 |
android.permission.CAMERA android.permission.WRITE_EXTERNAL_STORAGE |
LightSDK.native.imagePicker LightSDK.native.chooseImage LightSDK.native.saveImage |
CAMERA:用于图片选择接口,打开相机拍照选图功能 WRITE_EXTERNAL_STORAGE:用于图片保存接口 |
|
localauth | 指纹识别 | android.permission.USE_FINGERPRINT | LightSDK.native.verifyOpeation | 无危险权限 | |
mapbase | 定位 前台服务 |
android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_FINE_LOCATION android.permission.FOREGROUND_SERVICE |
LightSDK.native.getLocationOnce LightSDK.native.startLocationUpdate LightSDK.native.stopLocationUpdate LightSDK.native.onLocationChange LightSDK.native.offLocationChange |
ACCESS_COARSE_LOCATION:允许程序访问CellID或WiFi热点来获取粗略的位置 ACCESS_FINE_LOCATION:允许程序访问精良位置(如GPS) |
|
mapbaidu | 定位 前台服务 |
android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_FINE_LOCATION android.permission.FOREGROUND_SERVICE |
LightSDK.native.getLocation LightSDK.native.getLocationOnce LightSDK.native.startLocationUpdate LightSDK.native.stopLocationUpdate LightSDK.native.onLocationChange LightSDK.native.offLocationChange |
ACCESS_COARSE_LOCATION:允许程序访问CellID或WiFi热点来获取粗略的位置 ACCESS_FINE_LOCATION:允许程序访问精良位置(如GPS) |
|
maptencent | 定位 前台服务 |
android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_FINE_LOCATION android.permission.FOREGROUND_SERVICE |
LightSDK.native.getLocationOnce LightSDK.native.startLocationUpdate LightSDK.native.stopLocationUpdate LightSDK.native.onLocationChange LightSDK.native.offLocationChange |
ACCESS_COARSE_LOCATION:允许程序访问CellID或WiFi热点来获取粗略的位置 ACCESS_FINE_LOCATION:允许程序访问精良位置(如GPS) |
|
miniapp | REORDER_TASKS | android.permission.REORDER_TASKS | 打开小程序 | 无危险权限 | |
jsnmapbaidu | 定位 | android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_FINE_LOCATION |
JSN-地图标签组件 | ACCESS_COARSE_LOCATION:允许程序访问CellID或WiFi热点来获取粗略的位置 ACCESS_FINE_LOCATION:允许程序访问精良位置(如GPS) |
|
calendar | 日历 | android.permission.WRITE_CALENDAR android.permission.READ_CALENDAR |
LightSDK.native.createCalendar LightSDK.native.updateCalendar LightSDK.native.deleteCalendar LightSDK.native.queryCalendar |
READ_CALENDAR:允许程序读取用户日历数据 WRITE_CALENDAR:允许程序写入但不读取用户日历数据。 用于向系统日历增加、更新、删除、查询事件接口 |
注意事项:
- 为响应国家对App隐私合规的要求,自2021年9月1日,未配置permission插件的应用,将无法在GMU平台上进行集成打包
- iOS如果配置了permission,必须添加必要的权限声明,否则在调用到相关功能时无法正确请求权限,可能会引起接口无响应或app闪退。
- iOS如果未配置定位权限声明,申请定位权限时不会有弹框,app也不会闪退,系统行为如此。
- 在低版本iOS上,小程序容器包含的查询蓝牙开关功能并不需要申请蓝牙权限,但在高版本iOS上需要申请蓝牙权限。
- 如果在Android小程序中使用了wx.getSystemInfo/getSystemInfoSync接口,需要在permission文件中使用add添加蓝牙权限android.permission.BLUETOOTH,否则影响接口正常使用
- 如果Android App使用了震动接口LightSDK.native.startVibrate,需要在permission文件中使用add添加蓝牙权限android.permission.VIBRATE,否则影响接口正常使用
- Android如果配置了permission,并使用delete删除了模板库中的相应权限声明,但在实际应用中使用了该权限声明对应的功能,可能会导致功能异常或app闪退。
- Android中的delete并不能删除模块权限功能对应表中的权限声明,如需删除必须删除对应模块。
隐私政策
APPSTORE上架流程中需要提供隐私政策模板,经与法务沟通,公司已经拟定了相关的统一模板。如后续各部门有APP上架需求,请根据此模板补充产品相关内容后发给法务合规部——江山、王瑛、秦思思审核后方可使用,请悉知。
我们接入的相关第三方开发包(SDK)如下:(可以结合使用的功能,提供第三方代码隐私政策说明)
使用到的三方功能 | sdk用途 | 隐私合规说明 |
---|---|---|
GMU平台UBAS信息收集 | 崩溃分析收集 | 我们需要记录您在使用我们产品过程中产生的日志信息。日志中将会收集您的使用日期和时间,以及手机设备信息(您的硬件型号、操作系统版本、软件安装列表、使用语言、设备配置、唯一设备标识符、IMEI、MAC地址、IP地址、IMEI、UDID)。我们会对日志信息进行分析,用于客户服务、改善产品功能、提升用户体验。如您拒绝提供上述信息,不影响您正常使用其他业务功能。需要您开启读取电话状态权限,如您拒绝授予读取电话状态权限,您将无法正常使用APP内唤起电话拨打功能。 |
阿里weexSDK | JSNative模块功能 | 可能存在存储个人信息文件,结合使用的功能添加 官网地址 |
百度地图SDK | 地图定位功能 | 请根据官方文档添加对应隐私说明 文档地址 |
友盟 | 行为统计分析事件 | 请根据官方文档添加对应隐私说明文档地址 |
支付宝支付 | 支付宝支付功能 | 请根据官方文档添加对应隐私说明文档地址 |
微信登录 | 微信登录功能 | 目前没有相关的收集报告文档地址 |
微信支付 | 微信支付功能 | 目前没有相关的收集报告文档地址 |
微信分享 | 分享内容到微信 | 目前没有相关的收集报告文档地址 |
QQ分享 | 分享内容到QQ | 目前没有相关的收集报告文档地址 |
微博分享 | 分享内容到微博 | 目前没有相关的收集报告文档地址 |
钉钉分享 | 分享内容到钉钉 | 目前没有相关的收集报告 |
文件预览-腾讯tbs插件 | 文件预览功能 | 请根据官方文档添加对应隐私说明文档地址 |
阿里推送 | 阿里推送功能 | 请根据官方文档添加对应隐私说明文档地址 |
极光推送 | 极光推送功能 | 请根据官方文档添加对应隐私说明文档地址 |
个推推送 | 个推推送功能 | 请根据官方文档添加对应隐私说明文档地址 |
我们将审慎评估第三方使用共享信息的目的,对这些合作方的安全保障能力进行综合评估,并要求其遵循合作法律协议。我们会对合作方获取信息的软件工具开发包(SDK)进行严格的安全监测,以保护数据安全
告知文案示例
1、文案示例A
为向您提供【功能或服务描述】功能/服务,我们集成了【产品名称】SDK。在为您提供【功能或服务描述】功能/服务时,【产品名称】SDK需要收集、使用您必要的个人信息。关于【产品名称】SDK收集、使用的个人信息类型、目的及用途,以及【产品名称】SDK将如何保护所收集、使用的个人信息,请您仔细阅读相关隐私政策(附跳转链接)了解。
2、文案示例B
为保障App相关功能的实现与应用安全稳定的运行,我们可能会接入由第三方提供的SDK实现相关目的,具体接入的相关第三方SDK列明如下:
第三方SDK名称 | 使用目的 | 隐私政策链接 |
---|---|---|
【产品名称】SDK | 【目的或用途描述】 | 隐私政策链接 |
3、文案示例C
为向您提供【功能或服务描述】功能/服务,我们集成了【产品名称】SDK。在为您提供【功能或服务描述】功能/服务时,【产品名称】SDK收集、使用您的【个人信息类型描述】信息,用于【目的或用途描述】目的/用途。具体请您仔细阅读相关隐私政策(附跳转链接)了解。
4、文案示例D
为保障App相关功能的实现与应用安全稳定的运行,我们可能会接入由第三方提供的SDK实现相关目的,具体接入的相关第三方SDK列明如下:
第三方SDK名称 | 业务功能 | 个人信息类型 | 调用权限类型 | 具体目的/用途 |
---|---|---|---|---|
【产品名称】SDK | 【功能或服务描述】 | 【个人信息类型描述】 | 【调用权限类型】 | 【目的或用途描述】 |
当App第一次启动时会弹出隐私条款,显示在索权前,具体配置如下:
module.exports = { |
附录:
1.关于Android存在获取系统软件安装列表行为:
模块 | 用途 | 说明 |
---|---|---|
框架基础组件 | 分享功能 | 1、用于保证用户分享系统的使用,根据查询出的所有符合的应用给予授权,打开对应的分享入口。 2、用于提供接口判断各个平台app(微信、QQ、微博)在设备上是否已安装。 |
web容器 | 打开文件列表 | 用于打开app文件列表功能,对目标应用临时授权,能正常获取到所拥有的文件,优化文件列表获取。 |
平台服务组件 | 版本更新 | 1、用于版本更新优化,根据查询出的所有符合的应用给予授权,能正常打开系统的版本更新页面。 |
注意事项:
- privacyUrl字段,为显示隐私条款的h5页面路径,该路径支持远程和本地工程根目录下的相对路径(如工程根目录下privacy文件夹下的alert.html,可以配置privacy/alert.html),不支持离线包地址。
- version字段,为隐私条款版本号(不传、传null、””、” “、非字符串格式等默认为undefined字符串),用于隐私政策版本控制显示。
- 启动页打开隐私组件后,若在隐私组件页面上调用window.privacy.dismiss({})接口关闭组件,则下次启动App则不会再弹隐私组件。
- App覆盖升级时,若当前version与上次本地保存的version值不一致,则认为隐私条款页面有更新,启动App会重新弹出隐私组件。
- 隐私组件页面必须存在类似 同意 和 暂不使用 两个按钮(否则会导致应用市场审核不通过),点击 同意 ,需调用window.privacy.dismiss({})接口关闭隐私组件,这时App将继续往下执行,如果有需要权限认证则显示权限认证弹窗。点击暂不使用,应提示 需要同意条款后才能正常使用App功能。如果点击暂不使用想直接退出app,可调用window.privacy.exitApp({})接口关闭app(退出app功能只支持Android,由于苹果合规的要求,iOS不允许存在直接退出App功能)。
分享组件
module.exports = { |
注意事项:
- 钉钉分享的AppKey必须与申请的bundleId匹配,否则会分享失败,其他平台无此限制
- QQ分享使用的是AppId(10位纯数字),而不是AppKey(字母数字混合)
- QQ分享的URL Schemes还可配”QQ”+十六进制的AppId,不足8位开头补0,如果两个都配会优先使用QQ而不是tencent
相册组件
module.exports = { |
极光推送 && 个推 && 阿里云推送
module.exports = { |
配置厂商通道
- 【阿里推送】支持华为、小米厂商通道。
- 【极光推送】支持华为、小米、vivo、oppo厂商通道。
- 【阿里&极光推送】如需使用小米、vivo、oppo厂商通道,在厂商平台获取配置信息并按照如上所示填写,打包使用的包名须与厂商平台创建的一致。华为厂商通道除了按照上述配置外,打包的签名证书须与平台上传的一致,还需要在厂商平台下载agconnect-services.json文件,放入前端工程的根目录下(配置包则放入www文件下)。
- 【阿里推送】若使用厂商通道发送通知消息,想要获取点击通知消息数据或进行跳转,配置方案如下:(1)在阿里控制台上发推送,打开高级设置->通知点击后跳转activity选项,填写
com.hundsun.alipush.MiPushActivity
(2)填写辅助弹窗title/body内容(3)”Android8.0特殊配置-通知通道”填写”1”即可(4)自定义参数中增加{“url”:”http或gmu协议地址”}的字段,用于跳转页面 - 【极光推送】若使用厂商通道发送通知消息,想要获取点击通知消息数据或进行跳转,配置方案如下:(1)华为/小米/VIVO通道:uri_activity 中必须填入
com.hundsun.pushgmu.JpushNotifyActivity
;OPPO通道:uri_action中必须填入com.push.jpush.notify.activity
(2)附加字段中增加{“url”:”http或gmu协议地址”}的字段,用于跳转页面 - 【个推】暂不支持厂商通道
注意事项:
- 老版本的配置push将不再提供维护。
- 默认情况下使用极光推送,如果
alipush_appKey_iOS
或getui_appId
等字段和jpush_appKey
一起配置的情况下也是用的极光推送。阿里云key和个推的key只有单独配置的情况下才生效。 - 如果只配个推key和阿里云key时,以阿里云推送为优先。
- 【个推】由于个推不支持获取和删除标签,所以
LightSDK.native.pushGetTags
和LightSDK.native.pushDeleteTags
接口会不生效。 - 【个推】由于个推控台上没有提供添加
apns
自定义参数的功能,只能通过后端服务器对接个推后台才能实现该功能。因此light原有的点击通知跳转到应用内对应页面的功能(传入url字段,跳转页面功能)需要后台支持才能生效。 - 【个推】iOS暂不支持多媒体推送功能。
- 【阿里云推送】控台不支持设置别名和标签,需要后端服务器配合。
- 【阿里云推送】不支持一次性删除全部标签功能,所以
LightSDK.native.pushDeleteTags
接口如果删除全部标签会不生效。 - 【阿里云推送】小米必须要配置
mipush_appId
和mipush_appKey
才能够支持彻底关闭应用后接收到推送信息。 - 【阿里云推送】
android
版针对华为、小米手机做了额外处理(通过标准库打包支持,二次开发需参考官方文档自行集成),他们支持在应用彻底关闭(在recent
中杀死清除应用)后,仍然可以接收到推送消息。其他品牌的手机只能支持到通过双击返回键退出后还能接收到消息。 - 【阿里云推送】应用彻底关闭的情况下,服务器发送推送消息,小米基本在1分钟以内收到。华为需要5-15分钟的等待时间。厂商通道只是增加了在应用彻底关闭后通知的到达率,并不能保证100%收到通知。
- 【极光推送】目前
android
极光推送已支持华为、小米、vivo、oppo厂商通道(通过标准库打包支持,二次开发需参考官方文档自行集成),即支持在应用彻底关闭后,仍然可以在这些品牌手机上接收到推送消息。需要注意,厂商通道只是增加了在应用彻底关闭后通知的到达率,并不能保证100%收到通知。同时建议在极光平台发送通知时通过“优先极光通道,用户离线时使用厂商通道”的方式发送。可见极光以及各厂商推送官方文档说明。
扫一扫
module.exports = { |
注意事项:
- 老版本的scanning不再维护
手势指纹
module.exports = { |
注意事项:
- 老版本的lock不再维护
安全键盘
module.exports = { |
登录组件
module.exports = { |
支付
module.exports = { |
反馈组件
module.exports = { |
地图组件
module.exports = { |
注意事项:
- 使用时用标签map
- 该标签有2个方法relocate (重新定位)和getLocation (获取位置信息)
参考demohttps://r250t0dsj.lightyy.com/index.html#/index/mapComp
文件组件
module.exports = { |
安全组件
module.exports = { |
悬浮球组件
module.exports = { |
配置参数说明
字段 | 可选 | 类型及范围 | 说明 |
---|---|---|---|
src | 否 | string | 浮动按钮背景图片,支持base64和资源路径(路径暂时只支持读取gmu_icon目录下图片)两种方式 |
action | 否 | string | 浮动按钮点击事件的响应操作,目前仅支持标准gmu协议的URL(例:gmu://web?startPage=https://www.lightyy.com) |
waitingTime | 是 | number | 进入睡眠状态的等待时长(用户对浮动按钮无操作多长时间后会进入睡眠状态,单位ms,默认值为5000ms) |
alpha | 是 | number | 睡眠状态时浮动按钮透明度(支持范围0 ~ 1.0),默认值为0.5 |
height | 是 | number | 浮动按钮显示高度(背景图片按照指定宽高值固定比例缩放),默认值为60 |
width | 是 | number | 浮动按钮显示宽度(背景图片按照指定宽高值固定比例缩放),默认值为60 |
margin | 是 | number | 浮动按钮吸附到屏幕边缘时的边距,默认值为18 |
onlyShowInMainPage | 是 | bool | 浮动按钮是否只在首页显示,进入二级页面即隐藏,默认为false |
定位组件
定位组件中包含mapbase、mapbaidu、maptencent三个组件,集成后能够获取到的坐标系关系如下:
- 只集成mapbase,只支持wgs84;
- 只集成mapbaidu会默认集成mapbase,支持wgs84, bd09ll, gcj02
- 只集成maptencent会默认集成mapbase,支持wgs84, gcj02
- 集成mapbaidu和maptencent则支持wgs84, bd09ll, gcj02,其中gcj02为腾讯定位实现
基础定位组件
module.exports = { |
百度定位组件
module.exports = { |
腾讯定位组件
module.exports = { |