SolidWorks英文界面汉化方法与常见问题解决
2026/7/23 4:55:46
在前面的几篇里,我们已经把一个应用的骨架搭好了:
有路由、有状态、有网络
有登录、有列表、有缓存
页面结构也开始清晰
但到这里,很多同学会遇到一个分水岭问题:
❓ 为什么我的应用看起来像个 Web App?
因为它还没真正“用到系统能力”。
而 HarmonyOS 的核心价值,恰恰就在这里。
在真实应用中,你几乎一定会遇到:
读取设备信息
访问网络
使用相机 / 麦克风
读写文件
获取位置信息
而这些都离不开两个关键词:
权限 + 系统能力
📌权限 = 能不能用
📌系统能力 = 用来干什么
HarmonyOS 权限主要分为三类:
| 权限类型 | 特点 |
|---|---|
| normal | 安装即授权 |
| system_basic | 运行时弹窗 |
| system_grant | 系统应用 |
我们日常开发99% 使用 system_basic。
{ "module": { "requestPermissions": [ { "name": "ohos.permission.INTERNET" }, { "name": "ohos.permission.GET_DEVICE_INFO" } ] } }📌声明 ≠ 已授权
📌 声明只是“我可能会用”
HarmonyOS 使用abilityAccessCtrl进行权限控制。
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'async function requestPermission(permission: string): Promise<boolean> { const atManager = abilityAccessCtrl.createAtManager() const result = await atManager.requestPermissionsFromUser( getContext(), [permission] ) return result.authResults[0] === 0 }📌 返回0表示授权成功
const granted = await requestPermission( 'ohos.permission.GET_DEVICE_INFO' ) if (!granted) { showToast('没有权限,无法继续') return }import deviceInfo from '@ohos.deviceInfo'const deviceId = deviceInfo.deviceId const model = deviceInfo.productModel📌 常用于:
设备绑定
风控
日志追踪
export async function getSafeDeviceInfo() { const ok = await requestPermission( 'ohos.permission.GET_DEVICE_INFO' ) if (!ok) return null return { id: deviceInfo.deviceId, model: deviceInfo.productModel } }📌 页面永远不直接碰权限逻辑
{ "name": "ohos.permission.READ_USER_STORAGE" }, { "name": "ohos.permission.WRITE_USER_STORAGE" }import fs from '@ohos.file.fs' const path = '/data/storage/el2/base/test.txt' fs.writeText(path, 'Hello HarmonyOS')📌 建议统一路径管理
📌 不要硬编码到页面
{ "name": "ohos.permission.CAMERA" }import camera from '@ohos.camera' camera.openCamera({ success: () => { console.log('相机已打开') } })📌 HarmonyOS 强调能力调用 + 权限前置
onClick() { requestPermission() openCamera() }页面混乱
无法复用
难维护
Page ↓ Service ↓ PermissionManager ↓ System AbilityCameraService.open()内部自己判断权限
这是必考点。
| 情况 | 处理 |
|---|---|
| 第一次拒绝 | Toast 提示 |
| 多次拒绝 | 引导设置页 |
| 关键权限 | 阻断功能 |
showDialog( '需要相机权限', '请在系统设置中开启权限' )📌不要死循环弹窗
→ 永远申请失败
→ 无限重绘
→ 架构混乱
→ 用户体验极差
你现在已经:
✔ 理解 HarmonyOS 权限模型
✔ 会运行时动态申请权限
✔ 能调用系统能力
✔ 知道如何设计权限架构
✔ 明白用户拒绝时如何兜底
这已经不是“UI 应用”,而是:
真正的 HarmonyOS 原生应用
权限不是限制,而是你与系统之间的契约。
理解它、尊重它、封装它,
你的应用才能稳定、可靠、可扩展。