React Native 一些API详解

一、Platform 获取平台属性

javascript 复制代码
// 获取平台
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

javascript 复制代码
// 判断链接能否打开
Linking.canOpenURL('xx')
// 打开链接
Linking.openURL('xx') 
// 跳应用设置页面
Linking.openSettings()
// 获取跳转过来的url
Linking.getInitialURL()

三、PixelRatio

javascript 复制代码
// 获取屏幕像素密度
PixelRatio.get()
// 获取安卓字体缩放比例
PixelRatio.getFontScale()
// 获取尺寸的物理像素 = 尺寸* PixelRatio.get()
PixelRatio.getPixelSizeForLayoutSize(尺寸)

四、PermissionsAndroid 安装权限

javascript 复制代码
// 检查权限
PermissionsAndroid.check(xxxx).then(result => {
	// result: true/false
    if (!result) {
    	// 申请权限
        PermissionsAndroid.request(xxxx).then(status => {
        	// status: granted 允许   /   denied 拒绝
            // do sth.
        });
    }
});


// 申请多个权限
 PermissionsAndroid.requestMultiple([xxxx,xxxx])
相关推荐
用户2986985301429 分钟前
在 React 中用 JavaScript 将 Word 转换为文本
前端·javascript·react.js
狗狗狗狗狗乐啊14 小时前
搭一个 AI 对话工作台 AChat:从 0 到可用的完整记录(一)
python·react.js·ai编程
晓得迷路了1 天前
栗子前端技术周刊第 147 期 - React Router 8.4、Vite 云服务攻击、pnpm 12.4...
前端·javascript·react.js
神秘的猪头2 天前
React 脱围机制(二):重新理解 useEffect——它不是生命周期,而是同步外部系统
react.js
卡布鲁2 天前
React useMemo 与 useCallback 完全指南:原理、场景与避坑
前端·react.js
右耳朵猫AI2 天前
Web前端周刊2026W38 | React 19.3 发布、StyleX 深潜、jsdom 30.1 提速
前端·javascript·react.js·typescript·node.js
Flynt3 天前
Shopify 弃 React Native 上了 HN 1272 分,我复现了它给 Agent 用的那套无头架构
react native·前端框架·agent
晚安日记wanna3 天前
React 为何不做双端 diff?Vue 与 React 更新逻辑的三层差异
前端·react.js·面试
光影少年3 天前
setImmediate 和 setTimeout(0) 的区别
android·前端·react.js·ios·前端框架
用户298698530144 天前
前端如何把 TXT 文本文件转成 Word 文档:React 实践
前端·javascript·react.js