一、Platform 获取平台属性
// 获取平台
console.log(Platform.OS)
// 获取版本
console.log(Platform.Version)
// {"Brand": "google", "Fingerprint": "google/sdk_gphone64_x86_64/emu64xa:16/BP22.250325.006/13344233:user/release-keys", "Manufacturer": "Google", "Model": "sdk_gphone64_x86_64", "Release": "16", "Serial": "unknown", "ServerHost": "localhost:8081", "Version": 36, "isTesting": false, "reactNativeVersion": {"major": 0, "minor": 70, "patch": 6, "prerelease": null}, "uiMode": "normal"}
console.log(Platform.constants)
// 是否是pad
console.log(Platform.isPad);
// 是否是tv
console.log(Platform.isTV);
// 不同平台用不同样式
const styles = StyleSheet.create({
box: {
width: '100%',
height: '100%',
...Platform.select({ // 返回的是对象
android: {xx:xx},
ios: {xx:xx},
default: {xx:xx},
})
}
})
二、Linking
// 判断链接能否打开
Linking.canOpenURL('xx')
// 打开链接
Linking.openURL('xx')
// 跳应用设置页面
Linking.openSettings()
// 获取跳转过来的url
Linking.getInitialURL()
三、PixelRatio
// 获取屏幕像素密度
PixelRatio.get()
// 获取安卓字体缩放比例
PixelRatio.getFontScale()
// 获取尺寸的物理像素 = 尺寸* PixelRatio.get()
PixelRatio.getPixelSizeForLayoutSize(尺寸)
四、PermissionsAndroid 安装权限
// 检查权限
PermissionsAndroid.check(xxxx).then(result => {
// result: true/false
if (!result) {
// 申请权限
PermissionsAndroid.request(xxxx).then(status => {
// status: granted 允许 / denied 拒绝
// do sth.
});
}
});
// 申请多个权限
PermissionsAndroid.requestMultiple([xxxx,xxxx])