【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(四)

发布时间 2023-09-21 11:46:24作者: Mayism123
贴接上回。。。

 

【往期FAQ参考】

【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(一)

【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(二)

【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(三)

 

【本期FAQ】

1、JS服务卡片能实现按钮触摸时更换背景色,离开恢复原来颜色么
JS服务卡片暂不支持touchStart和touchEnd事件,也不支持css伪类设置,暂时无法实现此效果。

 

2、DownloadTask.on(‘progress’) 和 UploadTask.on(‘progress’) 下载进度的回调,只会回调一次吗?
进度回调可能会回调一次或多次,跟所处的网络环境有关。若网络环境较好,可能仅回调一次;若网络环境一般且文件比较大,可能会回调多次,定期回调返回上传和下载的进度,如10%、30%类似这样。

 

3、@ohos.data.storage存储数据时,DevEco Studio重新运行后,会清除原来存储的数据吗?
DevEco Studio点击运行按钮,会默认先卸载应用再进行安装,@ohos.data.storage存储数据时存在应用内部存储路径下的,所以卸载应用时会把应用数据也一并清除,之前存储的数据也会清除掉。
若想重新运行时保存原有存储的数据,可在【Run - Edit Configurations】中勾选“Keep Application Data”,此时运行只会覆盖安装,不会卸载安装,可实现重新运行后原有存储的数据不会清除。

cke_2589.png

 

4、使用@ohos.request上传下载接口时,接口对于上传下载速度是否有限制?
上传下载接口仅提供上传和下载功能,并不限制网络及速率;上传下载速度跟设备性能和所处的网络环境有关。

 

5、DevEco Studio中log日志打印不全?
DevEco Studio的Log日志打印长度是有限制的,目前支持最长长度为4096,与设备版本有关,超过长度会自动截取,因此建议日志打印时,若长度较长,建议将结果分段打印。

 

6、使用@Styles装饰器进行样式服用时,若给自定义组件添加自定义样式,会报错?
目前ArkTS HarmonyOS应用开发,不支持给自定义组件使用@Styles自定义样式。

 

7、鸿蒙应用开发,如何将屏幕锁定在横屏,禁止竖屏?
可在mudule.json5中设置组件启动时的方向,设置orientation为landscape,参考文档如下:
https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/quick-start/module-configuration-file.md/#abilities标签

cke_33542.png​​

 

8、使用时间选择组件,按照官网示例代码运行,选择时间后,结果比实际选择时间少一个月(API9 ArkTS)?
官方文档如下:https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-components-basic-picker-0000001333321145
请注意文档说明,month值范围为0-11,因此实际开发时,需要将显示的值中month进行+1处理,这才是实际选择的月份,参考如下图所示:

 

9、DevEco Studio如何切换语言为中文?
打开DevEco Studio后,点击左上角【File - Settings】打开如下页面,下载简体中文plugins安装后,可将DevEco Studio改为中文版:

 

10、如何让DevEco Studio每次打开不直接打开项目,而是回到选择项目面板?
关闭工程项目时,点击【File - Close Project】关闭您的项目,而不是直接关闭DevEco Studio,这样再次打开DevEco Studio时就会自动到选择项目面板,而不是直接打开项目。

 

11、华为开发者联盟提供了小程序转快应用的文档,是否支持小程序转元服务?
暂时还不支持小程序直接转元服务,需要新建元服务进行开发,更新资讯可关注官网更新。

 

12、API8 ArkTS的HarmonyOS应用中image组件无法加载以http开头的网络图片
目前此问题在API9已修复,API8支持加载https开头的网络图片,API9可加载http和https开头的网络图片。

 

13、打开模拟器运行程序,修改组件,ctrl+S后模拟器页面未刷新,模拟器怎么能做到热更新?
模拟器不支持热更新功能,不是previewer功能,修改页面组件后,需要重新运行安装工程项目,打开页面才可刷新。

 

14、本地模拟器使用@ohos.data.relationalStore创建本地数据库,初始化时报错
报错信息如下:

由于此接口功能实现需要依赖芯片相关接口,而部分模拟器无法提供相关硬件接口,所以RDB加密功能在远程模拟器中运行会报错,本地模拟器会根据电脑硬件功能确定是否支持此接口,可能部分支持部分不支持,因此使用数据库相关功能时,建议在真机上运行调试。

 

15、华为watch3手表如何监听手表的滚轮硬件滚动?
通过旋转电源键来完成页面交互,即旋转表冠事件,可参考文档如下:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/wearable-crown-rotation-intro-0000001158602489

 

16、如何拦截页面的物理返回事件(API9)
在页面的onBackPress方法中添加return true;可以防止物理返回,参考下图:

cke_16256.png

17、API9的HarmonyOS应用开发如何收到软件盘弹出的事件
可通过@ohos.window 中 keyboardHeightChange开启键盘高度变化的监听来判断键盘是否弹出,或者通过input的onfoucs事件判断键盘是否弹出,@ohos.window参考文档如下:
https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-window-0000001477981397-V3#ZH-CN_TOPIC_0000001573929313__onkeyboardheightchange7

 

持续更新中…