API 兼容性:
QRN:v1.0.0-RC
iOS:80011115
Android:60001130
getInfo 的 API 兼容性:
QRN:v2.6.0-rc.1
iOS:80011142
Android:60001180
uuid 和 isIphoneX 的 API 兼容性:
QRN:v2.6.0-rc.1
iOS:80011142
Android:60001180
userId 和 idfa 的 API 兼容性:
QRN:v3.2.0
iOS:80011150
Android:60001203
Android 添加获取挖孔屏信息:
QRN:v3.5.0
Android:60001219
添加获取沉浸式信息:
Android QRN:v3.7.0
Android vid:60001224
iOS QRN:v3.8.0
iOS vid:80011162
获取真实渠道号rCid:
Android QRN:v4.5.86
Android vid:60001477
添加应用内分屏/平行窗口字段:
Android QRN:v4.5.102
Android vid:60001495
DeviceInfo
可以用来获取 App 的信息。
import { DeviceInfo } from 'qunar-react-native';
DeviceInfo.getInfo (callback)
获取带有 qp包
信息 的 APP
信息
DeviceInfo
获取到的数据结构,不包含 qp包
信息注:这种方式获取的数据是react框架初始化的时候获取到的值,针对运行过程中随着游客模式、登录状态变化、依赖后端下发而取值发生变化的id不建议直接使用,需要改用同步或getInfo接口获取:可变字段有:uid
mac
idfa
gid
sid
fp
uuid
userId
DeviceInfo = {
isIOS: bool, //是否是iOS
isAndroid: bool, //是否是android
vid: string, //app vid
pid: string, //app pid
cid: string, //渠道号
rCid: string, //adr特有字段,代表当前运行apk真实渠道号,生效版本(60001477+)
splitSupported: bool, //adr特有字段,代表当前运行设备是否支持应用内分屏/平行窗口(60001495+)
isActivityEmbedded: bool, //adr特有字段,代表当前运行页面是否在分屏/平行窗口下,渲染时获取,尽量不要缓存(60001495+)
uid: string, //设备唯一号,会随着游客模式变化而变化,推荐使用getInfo获取
sid: string, //服务器下发的标示,推荐使用getInfo获取
gid: string, //服务器为每个设备下发的唯一编号,推荐使用getInfo获取
mac: string, //mac地址,在iOS7之前用来替代UDID,iOS7后,该接口永远返回 02:00:00:00:00:00 ,推荐使用getInfo获取
model: string, //设备信息,返回为iPhone 5s (GSM)、iPhone 6 Plus等,可以用来对特定的设备优化
manufacturer: string, //制造商信息,返回apple、huawei等
platform: string, //手机平台,返回iOS或者android
osVersion: string, //手机系统版本号,比如9.3等
scheme: string, //当前APP的Scheme跳转协议头,如qunariphone、qunaraphone等
qrn_version: sting, //QRN 版本,四月底版本为v1.0.0-RC
//iOS:80011117 Android:60001134 新增API
releaseType: string, //QRN lib类型,Android可能为dev、beta和release,iOS可能为beta和release
//iOS:80011143 Android:60001185 新增API
isIphoneX: bool,
uuid: string, //登录用户的uuid,随着用户登录状态变化而变化,推荐使用getInfo获取
//iOS:80011150 Android:60001203 新增API
userId: string,//登录用户的唯一标识,随着用户登录状态变化而变化,推荐使用getInfo获取
idfa: string,//机器的identifierForVendor:系统根据应用的bunld id前两个域生产的唯一标示,仅 iOS 有,随着游客模式变化而变化,推荐使用getInfo获取
//Android:60001224 新增API
immersiveInfo: {
immersive: true, // 是否需要沉浸式适配
immersiveOffset: 30, //获取沉浸式偏移高度
},
};
getInfo
接口获取的带有 qp包
的数据结构//iOS:80011142 Android:60001180 新增API
DeviceInfo.getInfo = {
isIOS: bool, //是否是iOS
isAndroid: bool, //是否是android
vid: string, //app vid
pid: string, //app pid
cid: string, //渠道号
rCid: string, //adr特有字段,代表当前运行apk真实渠道号,生效版本(60001477+)
splitSupported: bool, //adr特有字段,代表当前运行设备是否支持应用内分屏/平行窗口(60001495+)
isActivityEmbedded: bool, //adr特有字段,代表当前运行页面是否在分屏/平行窗口下,渲染时获取,尽量不要缓存(60001495+)
uid: string, //设备唯一号
sid: string, //服务器下发的标示
gid: string, //服务器为每个设备下发的唯一编号
mac: string, //mac地址,在iOS7之前用来替代UDID,iOS7后,该接口永远返回 02:00:00:00:00:00
model: string, //设备信息,返回为iPhone 5s (GSM)、iPhone 6 Plus等,可以用来对特定的设备优化
manufacturer: string, //制造商信息,返回apple、huawei等
platform: string, //手机平台,返回iOS或者android
osVersion: string, //手机系统版本号,比如9.3等
scheme: string, //当前APP的Scheme跳转协议头,如qunariphone、qunaraphone等
qrn_version: sting, //QRN 版本,四月底版本为v1.0.0-RC
//iOS:80011117 Android:60001134 新增API
releaseType: string, //QRN lib类型,Android可能为dev、beta和release,iOS可能为beta和release
//iOS:80011143 Android:60001185 新增API
isIphoneX: boolean,
uuid: string,
//iOS:80011150 Android:60001203 新增API
userId: string,
idfa: string,
qpInfo:{
'android_vid': string, //qp包适用的最低安卓vid
'hybridid': string, //qp包的hybridId
'iOS_vid': string, //qp包适用的最低iOSvid
'pid': string, //客户端的pid
'platform': string, //所在平台 iOS/Android
'rnpackage': boolean, //是否是rn的qp包
'timestamp': number, //qp包的时间戳
'version': string, //qp包的版本号
'biz_assign_version': string, //qp包业务自定义版本号,通过在yaml文件里传入,在此方法中获取。iOSVid>=80011239,adrVid>=60001382
}
//Android:60001219 新增API
notchInfo:{
'notch': boolean, //是不是挖孔屏
'notchSize':{
'width': number, //挖孔屏宽度
'height': number, //挖孔屏高度
}
},
//Android:60001224 新增API
immersiveInfo:{
immersive: true, // 是否需要沉浸式适配
immersiveOffset:30 //获取沉浸式偏移高度
}
}
DeviceInfo
获取,不包含 qp包
信息注:这种方式获取的数据是react框架初始化的时候获取到的值,针对运行过程中随着游客模式、登录状态变化、依赖后端下发而取值发生变化的id不建议直接使用,需要改用同步或getInfo接口获取:可变字段有:uid
mac
idfa
gid
sid
fp
uuid
userId
import { DeviceInfo } from 'qunar-react-native';
//app平台是否是iOS或者android,返回true或者false
var isIOS = DeviceInfo.isIOS;
var isAndroid = DeviecInfo.isAndroid;
var vid = DeviceInfo.vid; //app vid
var pid = DeviecInfo.pid; //app pid
var cid = DeviceInfo.cid; //渠道号
var rCid = DeviceInfo.rCid; //adr特有字段,代表当前运行apk真实渠道号,生效版本(60001477+)
var splitSupported = DeviceInfoData.splitSupported; //adr特有字段,代表当前运行设备是否支持应用内分屏/平行窗口(60001495+)
var isActivityEmbedded = DeviceInfoData.isActivityEmbedded; //adr特有字段,代表当前运行页面是否在分屏/平行窗口下,渲染时获取,尽量不要缓存(60001495+)
var uid = DeviceInfo.uid; //设备唯一号,会随着游客模式变化而变化,推荐使用getInfo获取
var sid = DeviceInfo.sid; //服务器下发的标示,推荐使用getInfo获取
var gid = DeviceInfo.gid; //服务器为每个设备下发的唯一编号,推荐使用getInfo获取
//mac地址,在iOS7之前用来替代UDID,iOS7后,该接口永远返回 02:00:00:00:00:00,随游客模式变化而变化,推荐使用getInfo获取
var mac = DeviceInfo.mac;
//设备信息,返回为iPhone 5s (GSM)、iPhone 6 Plus等,可以用来对特定的设备优化
var model = DeviceInfo.model;
var manufacturer = DeviceInfo.manufacturer; //制造商信息,返回apple、huawei等
var platform = DeviceInfo.platform; //手机平台,返回iOS或者android
var osVersion = DeviceInfo.osVersion; //手机系统版本号,比如9.3等
var scheme = DeviceInfo.scheme; // 当前APP的Scheme跳转协议头,如qunariphone、qunaraphone等
var qrn_version = DeviceInfo.qrn_version; //QRN 版本,四月底版本为v1.0.0-RC
var releaseType = DeviceInfo.releaseType; //QRN Lib版本 线上为release
var uuid = DeviceInfo.uuid; //登录用户的uuid,随着用户登录状态变化而变化,推荐使用getInfo获取
var isIphoneX = DeviceInfo.isIphoneX; //是否是isIphoneX
var userId = DeviceInfo.userId; //用户Qunar唯一标识,随着用户登录状态变化而变化,建议使用getInfo获取
var idfa = DeviceInfo.idfa; //机器的identifierForVendor:系统根据应用的bunld id前两个域生产的唯一标示,仅iOS有,随着游客模式变化而变化,推荐使用getInfo获取
var immersiveInfo = DeviceInfo.immersiveInfo //Android:60001224 新增API
getInfo
接口获取import { DeviceInfo } from 'qunar-react-native';
DeviceInfo.getInfo((DeviceInfoData) => {
var vid = DeviceInfoData.vid; //app vid
var pid = DeviceInfoData.pid; //app pid
var cid = DeviceInfoData.cid; //渠道号
var rCid = DeviceInfoData.rCid; //adr特有字段,代表当前运行apk真实渠道号,生效版本(60001477+)
var splitSupported = DeviceInfoData.splitSupported; //adr特有字段,代表当前运行设备是否支持应用内分屏/平行窗口(60001495+)
var isActivityEmbedded = DeviceInfoData.isActivityEmbedded; //adr特有字段,代表当前运行页面是否在分屏/平行窗口下,渲染时获取,尽量不要缓存(60001495+)
var uid = DeviceInfoData.uid; //设备唯一号
var sid = DeviceInfoData.sid; //服务器下发的标示
var gid = DeviceInfoData.gid; //服务器为每个设备下发的唯一编号
//mac地址,在iOS7之前用来替代UDID,iOS7后,该接口永远返回 02:00:00:00:00:00
var mac = DeviceInfoData.mac;
//设备信息,返回为iPhone 5s (GSM)、iPhone 6 Plus等,可以用来对特定的设备优化
var model = DeviceInfoData.model;
var manufacturer = DeviceInfoData.manufacturer; //制造商信息,返回apple、huawei等
var platform = DeviceInfoData.platform; //手机平台,返回iOS或者android
var osVersion = DeviceInfoData.osVersion; //手机系统版本号,比如9.3等
var scheme = DeviceInfoData.scheme; // 当前APP的Scheme跳转协议头,如qunariphone、qunaraphone等
var qrn_version = DeviceInfoData.qrn_version; //QRN 版本,四月底版本为v1.0.0-RC
var releaseType = DeviceInfoData.releaseType; //QRN Lib版本 线上为release
var uuid = DeviceInfoData.uuid; //登录用户的uuid
var isIphoneX = DeviceInfoData.isIphoneX; //是否是isIphoneX
var userId = DeviceInfoData.userId; //用户Qunar唯一标识
var idfa = DeviceInfoData.idfa; //机器的identifierForVendor:系统根据应用的bunld id前两个域生产的唯一标示,仅 iOS 有
if (DeviceInfoData.qpInfo) {
var android_vid = DeviceInfoData.qpInfo.android_vid; //qp包适用的最低安卓vid
var hybridid = DeviceInfoData.qpInfo.hybridid; //qp包的hybridId
var iOS_vid = DeviceInfoData.qpInfo.iOS_vid; //qp包适用的最低iOSvid
var pid = DeviceInfoData.qpInfo.pid; //客户端的pid
var platform = DeviceInfoData.qpInfo.platform; //所在平台 iOS/Android
var rnpackage = DeviceInfoData.qpInfo.rnpackage; //是否是rn的qp包
var timestamp = DeviceInfoData.qpInfo.timestamp; //qp包的时间戳
var version = DeviceInfoData.qpInfo.version; //qp包的版本号
var biz_assign_version = DeviceInfoData.qpInfo.biz_assign_version; //qp包业务自定义版本号,通过在yaml文件里传入,在此方法中获取。iOSVid>=80011239,adrVid>=60001382
}
if (DeviceInfoData.notchInfo) {
var notch = DeviceInfoData.notchInfo.notch;
var notchSize = DeviceInfoData.notchInfo.notchSize;
}
if (DeviceInfoData.immersiveInfo) {
var immersive = DeviceInfoData.immersiveInfo.immersive; //是否需要沉浸式适配
var immersiveOffset = DeviceInfoData.immersiveInfo.immersiveOffset; //获取沉浸式偏移高度
}
});