{"_id":"@capacitor-ohos/text-zoom","_rev":"2-edac6a1cdd6faf3fd8c8a4e05f08809c","name":"@capacitor-ohos/text-zoom","dist-tags":{"latest":"8.0.2"},"versions":{"8.0.1":{"name":"@capacitor-ohos/text-zoom","version":"8.0.1","keywords":["capacitor","plugin","native","text-zoom","zoom"],"author":{"url":"Group","name":"Huawei Device Co., Ltd and iSoftStone Information Technology"},"license":"MIT","_id":"@capacitor-ohos/text-zoom@8.0.1","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-text-zoom/issues"},"dist":{"shasum":"415e51a4222a1198c595acef5bb4054253535fa9","tarball":"https://registry.npmjs.org/@capacitor-ohos/text-zoom/-/text-zoom-8.0.1.tgz","fileCount":10,"integrity":"sha512-PWSkQWyDoRc5py18PA30EpqXJD1KIOJ4YarjFumE6scehs6acPSa1DE/xCThkUZeRrxknYrHwvhqZ9obfIukng==","signatures":[{"sig":"MEYCIQC8wNWoOncfrmXAN9flW8KQyllkppMfFx6Z5zwkHhfUzAIhAJkxOxrPidtgRV4ajGDOpMF14ORl5j1dg0LDqnA99IeE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40470},"gitHead":"3c7114b9f7709bd92f3e716cfa04d680d0c47f69","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"capacitor":{"id":"@capacitor/text-zoom","platforms":["openharmony"]},"repository":{"url":"gitcode:CPF-Ionic/capacitor-text-zoom","type":"git"},"_npmVersion":"10.5.1","description":"文本缩放 API 提供了调整 Web 视图文本大小以提高视觉可访问性的功能。","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/text-zoom_8.0.1_1777543292887_0.009930691211759601","host":"s3://npm-registry-packages-npm-production"}},"8.0.2":{"name":"@capacitor-ohos/text-zoom","version":"8.0.2","description":"文本缩放 API 提供了调整 Web 视图文本大小以提高视觉可访问性的功能。","capacitor":{"id":"@capacitor/text-zoom","platforms":["openharmony"]},"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-text-zoom"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-text-zoom/issues"},"keywords":["capacitor","plugin","native","text-zoom","zoom"],"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","_id":"@capacitor-ohos/text-zoom@8.0.2","gitHead":"d89eaeaaa6d0e3e8115487fc036667773d7bdbda","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-R3LrnAhEeArJU8bAoyatQUle3Y8VXsYWgfxeV1Es53cN3L+um8l+t+9UH+ndVbyfejFl5IqBpZ6uYwDjFaSk4w==","shasum":"a9172fd6e6df031bf88b6130dc1cf16a8711a4ce","tarball":"https://registry.npmjs.org/@capacitor-ohos/text-zoom/-/text-zoom-8.0.2.tgz","fileCount":10,"unpackedSize":41378,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCnqaV5tyKAZ7BI7sWpyYLL9g6mQ5OWU+98BNffNT32ZQIgYU00CdKTmuAtKCDE/4NfZkcpjSdvLO2QoAqYiMTdG64="}]},"_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"directories":{},"maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/text-zoom_8.0.2_1784793514204_0.24325849011104328"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T10:01:32.795Z","modified":"2026-07-23T07:58:34.493Z","8.0.1":"2026-04-30T10:01:33.077Z","8.0.2":"2026-07-23T07:58:34.341Z"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-text-zoom/issues"},"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","keywords":["capacitor","plugin","native","text-zoom","zoom"],"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-text-zoom"},"description":"文本缩放 API 提供了调整 Web 视图文本大小以提高视觉可访问性的功能。","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"readme":"# <center>@capacitor/text-zoom</center>\r\n[![zh-CN](https://img.shields.io/badge/lang-中文-blue.svg)](README.md)\r\n[![en](https://img.shields.io/badge/lang-English-blue.svg)](README.en.md)\r\n\r\n本项目基于 [@capacitor/text-zoom@8.0.0](https://www.npmjs.com/package/@capacitor/text-zoom) 开发。\r\n\r\n## 简介\r\n\r\n`@capacitor/text-zoom` 是 capacitor 生态系统中的插件，用于管理和控制应用内的文本缩放级别，为跨平台应用开发提供设备差异化适配能力，兼容 capacitor 的 Android、iOS 等主流移动平台，本文档主要说明在 OpenHarmony 系统中的使用。\r\n\r\n该插件允许开发者获取当前文本缩放比率、获取系统的文本缩放比率，以及设置应用内的文本缩放比率，满足无障碍需求中用户调整字体大小的场景。\r\n\r\n## 支持平台\r\n\r\n- **OpenHarmony**：5.0+\r\n\r\n## 下载安装\r\n\r\n通过命令行或手动引入即可快速安装插件，支持从npm仓库获取。\r\n\r\n### 命令行安装（推荐）\r\n\r\n安装hionic CLI：\r\n\r\n```bash\r\nnpm install -g hionic\r\n```\r\n\r\n以下两种方式中**任选其一**即可，无需重复操作：\r\n\r\nnpm安装：\r\n\r\n```bash\r\n# 安装插件\r\nnpm install @capacitor/text-zoom\r\n\r\n# 同步插件\r\nhionic sync openharmony\r\n```\r\n\r\nhionic CLI安装：\r\n\r\n```bash\r\nhionic plugin add @capacitor/text-zoom\r\n```\r\n\r\n### 手动引入安装\r\n\r\n根据插件源码中 `plugin.xml` 配置在项目中引入插件：\r\n\r\n#### 1. 添加插件配置\r\n\r\n根据 `plugin.xml` 的 `config-json` 项，通过 `target` 字段找到 `entry` 模块中 `capacitor.plugins.json` 文件，并根据 `param` 标签添加配置如下：\r\n\r\n```json\r\n{\r\n    \"pkg\": \"@capacitor/text-zoom\",\r\n    \"classpath\": \"TextZoom\"\r\n}\r\n```\r\n\r\n#### 2. 修改 CMake 配置\r\n\r\n根据 `plugin.xml` 的 `CMakeLists` 项，通过 `modules-name` 字段找到模块 capacitor，路径为 `target` 字段的 `CMakeLists.txt` 文件，并根据 `param` 标签添加 `add_subdirectory` 和 `target_link_libraries` 如下：\r\n\r\n```cmake\r\n#START_ADD_SUBDIRECTORY\r\n// ...\r\nadd_subdirectory(TextZoom)\r\n// ...\r\n#END_ADD_SUBDIRECTORY\r\n\r\n// ...\r\n\r\ntarget_link_libraries(capacitor PUBLIC\r\n  \"-Wl,--whole-archive\"\r\n  // ...\r\n  TextZoom\r\n  // ...\r\n  \"-Wl,--no-whole-archive\"\r\n)\r\n```\r\n\r\n#### 3. 复制源码文件\r\n\r\n根据 `plugin.xml` 的 `source-file` 项，根据 `src` 字段找到需要复制的文件，并根据 `modules-name` 字段和 `target-dir` 字段找到文件复制的具体模块和目录：\r\n\r\n将源码中 src/main/cpp/TextZoom 目录下的 TextZoom.h、TextZoom.cpp、CMakeLists.txt 文件引入到 capacitor 模块中 src/main/cpp/TextZoom 目录下。\r\n\r\n将源码中 src/main/ets/components/TextZoom 目录下的 TextZoom.ets 文件引入到 capacitor 模块中 src/main/ets/components/TextZoom 目录下。\r\n\r\n#### 4. 添加 ArkTS 配置\r\n\r\n在 capacitor 模块的 `build-profile.json5` 文件中，`buildOption/arkOptions/runtimeOnly/sources` 配置项数组中加入步骤 3 中拷贝的 ets 文件路径：\r\n\r\n```json\r\n\"buildOption\": {\r\n  // ...\r\n  \"arkOptions\": {\r\n    \"runtimeOnly\": [\r\n      // ...\r\n      \"./src/main/ets/components/TextZoom/TextZoom.ets\"\r\n      // ...\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\n## 卸载\r\n\r\n```bash\r\n# 卸载 text-zoom 插件\r\nhionic plugin remove @capacitor/text-zoom\r\n```\r\n\r\n## 参数配置\r\n\r\n需要在应用中配置字体缩放支持：\r\n\r\n### 1. 新建配置文件\r\n\r\n`AppScope/resources/base/profile/configuration.json`\r\n\r\n```json\r\n{\r\n  \"configuration\": {\r\n    \"fontSizeScale\": \"followSystem\",\r\n    \"fontSizeMaxScale\": \"3.2\"\r\n  }\r\n}\r\n```\r\n\r\n### 2. 在 `AppScope/app.json5` 中引用该配置\r\n\r\n```json\r\n{\r\n  \"app\": {\r\n    \"bundleName\": \"com.example.temp_demo\",\r\n    \"vendor\": \"example\",\r\n    \"versionCode\": 1000000,\r\n    \"versionName\": \"1.0.0\",\r\n    \"icon\": \"$media:app_icon\",\r\n    \"label\": \"$string:app_name\",\r\n    // 引用配置\r\n    \"configuration\": \"$profile:configuration\"\r\n  },\r\n}\r\n```\r\n\r\n## 约束与限制\r\n\r\n### 兼容性\r\n\r\n在以下版本中已测试通过：\r\n\r\n1. SDK: 5.0.5(17); IDE: DevEco Studio: 6.0.0; ROM: 5.1.0.150;\r\n\r\n### 权限要求\r\n\r\n不涉及特殊权限。\r\n\r\n## 使用示例\r\n\r\n### 示例：获取和设置文本缩放\r\n\r\n```javascript\r\nimport { TextZoom } from '@capacitor/text-zoom';\r\n\r\nconst manageTextZoom = async () => {\r\n  // 获取当前缩放值\r\n  const current = await TextZoom.get();\r\n  console.log('当前缩放比例:', current.value);\r\n\r\n  // 获取系统偏好值\r\n  const preferred = await TextZoom.getPreferred();\r\n  console.log('系统偏好缩放比例:', preferred.value);\r\n\r\n  // 设置新的缩放值 (例如设置为 1.5 倍)\r\n  try {\r\n    await TextZoom.set({ value: 1.5 });\r\n    console.log('文本缩放已设置为 1.5');\r\n  } catch (error) {\r\n    console.error('设置失败:', error);\r\n  }\r\n};\r\n```\r\n\r\n## 使用说明\r\n\r\n`TextZoom` 是插件导出对象，可直接导入使用，无需等待就绪事件触发，导入后即可调用插件提供的所有方法。\r\n\r\n### 接口方法\r\n\r\n| 方法名           | 返回类型                   | 调用方式                 | 入参类型                  | 功能描述                                   |\r\n| ---------------- | -------------------------- | ------------------------ | ------------------------- | ------------------------------------------ |\r\n| get()          | Promise&lt;[GetResult](#getresult)&gt; | TextZoom.get()           | 无入参                    | 获取当前的文本缩放级别                     |\r\n| getPreferred() | Promise&lt;[GetPreferredResult](#getpreferredresult)&gt; | TextZoom.getPreferred()  | 无入参                    | 获取系统的默认文本缩放级别                 |\r\n| set(options)         | Promise&lt;void&gt; | TextZoom.set(options) | [SetOptions](#setoptions) | 设置应用内的文本缩放级别，缩放值必须大于 0 |\r\n\r\n\r\n### 数据结构\r\n\r\n#### GetPreferredResult\r\n\r\n`getPreferred` 方法的返回对象\r\n\r\n| 参数      | 类型     | 描述                           | Since |\r\n| --------- | -------- | ------------------------------ | ----- |\r\n| **`value`** | `number` | The preferred zoom level (represented as a decimal). | 1.0.0 |\r\n\r\n#### SetOptions\r\n\r\n调用 `set` 方法时的入参对象\r\n\r\n| 参数      | 类型     | 描述                                                                                                          |\r\n| --------- | -------- | ------------------------------------------------------------------------------------------------------------- |\r\n| **`value`** | `number` | 要设置的文本缩放比例。必须是数字且大于 0。例如 `1.0` 代表 100% (正常大小)，`1.5` 代表 150%，`2.0` 代表 200%。 |\r\n\r\n#### GetResult\r\n\r\n`get` 和 `getPreferred` 方法的返回对象\r\n\r\n| 参数      | 类型     | 描述                           |\r\n| --------- | -------- | ------------------------------ |\r\n| **`value`** | `number` | 文本缩放比例数值。例如 `1.0`。 |\r\n\r\n## 常见问题\r\n\r\n**Q: 设置缩放值时报错 \"Value must be greater than 0\"？**\r\n\r\n* **原因**：插件对输入的 `value` 进行了有效性校验，要求缩放值必须大于 0。\r\n* **解决方案**：确保传入的 `value` 参数是大于 0 的数字。例如 `0.5`、`1.0`、`1.5`、`2.0` 等都是有效值。\r\n\r\n**Q: 设置的缩放值会保存吗？**\r\n\r\n* **说明**：插件**不会**持久化保存缩放值。调用 `set` 方法只会在当前运行时生效，应用重启后会恢复到默认值（跟随系统）。如果需要持久化保存用户的缩放偏好，需要应用侧自行实现保存和恢复逻辑。\r\n\r\n## 目录结构\r\n\r\n```\r\n|---- 项目根目录\r\n|     |---- src\r\n|           |---- main\r\n|                 |---- cpp\r\n|                       |---- TextZoom   # 插件核心 C++ 实现\r\n|                             |---- TextZoom.cpp\r\n|                             |---- TextZoom.h\r\n|                             |---- CMakeLists.txt\r\n|                 |---- ets\r\n|                       |---- components\r\n|                             |---- TextZoom   # ArkTS 组件实现\r\n|                                   |---- TextZoom.ets\r\n|     |---- README.md                # 说明文档\r\n|     |---- package.json             # npm 配置文件\r\n|     |---- plugin.xml               # capacitor 插件配置\r\n|     |---- LICENSE                  # 许可证文件\r\n```\r\n\r\n## 贡献代码\r\n\r\n使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/CPF-Ionic/capacitor-text-zoom/issues)，当然，也非常欢迎发 [PR](https://gitcode.com/CPF-Ionic/capacitor-text-zoom/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **MIT License** 开源，详见 [LICENSE](./LICENSE) 文件。\r\n","readmeFilename":"README.md"}