| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 22-Oct-2025 | - | 35 | 32 | ||
| entry/ | 22-Oct-2025 | - | 1,490 | 1,310 | ||
| hvigor/ | 22-Oct-2025 | - | 19 | 19 | ||
| screenshots/ | 22-Oct-2025 | - | ||||
| README_zh.md | D | 22-Oct-2025 | 5.6 KiB | 99 | 66 | |
| build-profile.json5 | D | 22-Oct-2025 | 1.1 KiB | 50 | 49 | |
| hvigorfile.ts | D | 22-Oct-2025 | 843 | 22 | 5 | |
| hvigorw | D | 22-Oct-2025 | 1.4 KiB | 49 | 28 | |
| hvigorw.bat | D | 22-Oct-2025 | 1.5 KiB | 65 | 47 | |
| oh-package.json5 | D | 22-Oct-2025 | 235 | 13 | 12 | |
| ohosTest.md | D | 22-Oct-2025 | 1.4 KiB | 12 | 9 |
README_zh.md
1# extension示例 2 3## 介绍 4 5本示例实现了一个inputMethod独立extension,并验证独立extension与UIExtension之间的文件共享,实现了以下几点功能: 6 71.实现一个inputMethod独立extension:[InputMethodService.ets](./entry/src/main/ets/inputmethodextability1/InputMethodService.ets)。 8 92.UIExtension与inputMethod独立extension实现文件共享。 10 11## 效果预览 12 13| 首页 | 访问模块级别独立沙箱文件 | 访问应用级别独立沙箱文件 | 14|--------------------------------------|----------------------------------------|---------------------------------------| 15|  |  |  | 16 17## 使用说明 18 191. 启动一个主应用 "hdc shell aa start -a EntryAbility -b 20 com.example.contexttest"。点击前两个按钮,uiAbility分别以dataGroupId为" 21 test1"、"test2"产生的共享目录下创建共享文件,创建成功后会有创建成功弹框提示,创建失败会有创建失败弹框提示,预期结果为创建成功; 22 232. 启动一个inputMethod独立extension应用: "hdc shell aa start -a 24 inputMethod -b com.example.contexttest",inputMethod可在dataGroupId为"test1" 25 产生的共享目录下修改共享文件,修改成功查看打印相关日志:1:the content of file:1:inputMethod Try to write str.,修改失败查看相关打印日志:1:fs.openSync err: {"code":13900002},预期结果为修改成功;在dataGroupId为" 26 test2"产生的共享目录下修改共享文件,修改成功查看打印相关日志:2:the content of file:2:inputMethod Try to write str.,修改失败查看相关打印日志:2:fs.openSync err: {"code":13900002},预期结果为修改失败; 27 283. 点击第三个按钮,UIAbility访问inputMethod module级别的独立extension的沙箱文件,访问成功会有访问成功弹框提示;访问失败会有访问失败弹框提示且页面的message更新为moduleFailed;预期结果访问失败,证明inputMethod是独立沙箱; 29 304. 点击第四个按钮,UIAbility访问inputMethod应用级别的独立extension的沙箱文件,访问成功会有访问成功弹框提示;访问失败会有访问失败弹框提示且页面的message更新为appFailed;预期结果访问失败,证明inputMethod是独立沙箱; 31 325. 以上预期结果设备皆为Phone,RK3568内配置文件未将inputMethod设置为独立沙箱,因此所有操作皆可成功。 33 34## 工程目录 35 36``` 37entry/src/main/ets/ 38|---entryability 39|---inputMethodextability 40 |---pages 41 |---inputMethodService.ets // input独立extension 42|---pages 43| |---Index.ets // 首页 44entry/src/ohosTest/ets/ 45|---test 46| |---Ability.test.ets // xts用例 47 48``` 49 50## 具体实现 51 52* 示例分为两个方面 53 54* inputMethod独立extension与UIExtension实现共享目录下文件共享: 55 * 使用getGroupDir接口,创建共享目录下的共享文件,dataGroupId相同的共享目录下的共享文件可以实现文件共享,反之不能实现共享。 56 * 源码参考:[Index.ets](./entry/src/main/ets/pages/Index.ets),[InputMethodService.ets](./entry/src/main/ets/inputmethodextability1/InputMethodService.ets) 57 * 接口参考:[context.d](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-ability-kit/js-apis-inner-application-context.md) 58 59* inputMethod独立extension访问其独立沙箱文件且能正常操作文件,另外的应用不能访问其沙箱文件: 60 * 使用openSync、writeSync、closeSync等接口实现对沙箱文件的创建、读、写等操作。 61 * 源码参考:[Index.ets](./entry/src/main/ets/pages/Index.ets),[InputMethodService.ets](./entry/src/main/ets/inputmethodextability1/InputMethodService.ets) 62 * 接口参考:[@ohos.file.fs.d](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-fileio.md) 63 64## 相关权限 65 66不涉及。 67 68## 依赖 69 70不涉及。 71 72## 约束与限制 73 741.本示例仅支持标准系统上运行,支持设备:RK3568。 75 762.本示例为Stage模型,支持API12版本SDK,SDK版本号(API Version 12 Release),镜像版本号(5.0.0.20)。 77 783.本示例需要使用DevEco Studio 版本号(4.1.0.400)及以上版本才可编译运行。 79 804.本示例需要使用Full SDK编译。使用Full SDK时需要手动从镜像站点获取,并在DevEco 81Studio中替换,具体操作可参考[替换指南](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/faqs/full-sdk-switch-guide.md)。 82 835.本实例需要用到相同dataGroupId实现共享文件,所以需要在签名证书UnsgnedReleasedProfileTemplate.json中的"bundle-info"配置项中添加配置如:" 84data-group-ids":["test1","test2","test3"],同时需要在module.json5中的extensionAbilities中添加配置如:" 85dataGroupIds": ["test1"] 86,只有当前extension和应用配置相同dataGroupId,才可以和应用共享这一个dataGroupId生成的目录。具体操作指南可参考[HarmonyAppProvision配置文件说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/app-provision-structure.md#bundle-info%E5%AF%B9%E8%B1%A1%E5%86%85%E9%83%A8%E7%BB%93%E6%9E%84)。 87 88## 下载 89 90如需单独下载本工程,执行如下命令: 91 92``` 93git init 94git config core.sparsecheckout true 95echo code/BasicFeature/Extension/Contexttest/ > .git/info/sparse-checkout 96git remote add origin https://gitee.com/openharmony/applications_app_samples.git 97git pull origin master 98``` 99