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

【写在前面】

之前和大家分享过一下HarmonyOS应用开发相关问题,今天继续和大家分享!

 

【前提简介】

本文档主要总结HarmonyOS开发过程中可能遇到的一些问题解答,主要围绕HarmonyOS展开,包括但不限于不同API版本HarmonyOS开发、UI组件、DevEco Studio、Gitee示例代码等,随工作将持续更新。

 

【FAQ】

1、HarmonyOS表单页面,当页面向下滑动后点击输入框获取焦点,弹出的键盘会遮住输入框
此问题在API 9已解决,旧版本无法回合可采取其他方式规避,如:获取焦点软键盘弹起后,可将表单位置上移。

 

2、LiteWearable轻量级智能穿戴应用,放入几百K图片素材,生成包大小增加几十兆,在手表中无法安装
对于轻量级智能穿戴应用打包方式,图片素材增加导致包大小增加问题,目前只能通过控制图片大小来控制包大小,暂无其他规避手段。

 

3、DevEco 海外版本与国内版本
国内DevEco版本可通过此链接下载:

https://developer.harmonyos.com/cn/develop/deveco-studio#download
海外DevEco版本可通过此链接下载:

https://developer.harmonyos.com/en/develop/deveco-studio#download
海外版本较国内版本而言更新较慢,暂不推荐海外开发者使用国内较高版本,因为高版本相关SDK并未推送至海外,可能会导致部分SDK无法下载。

 

4、ArkTS API 8 组件边框设置是否可以设置单边框?
ArkTS语言,API 8不支持单边框设置,API 9开始支持,参考文档如下:
API8边框设置:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-universal-attributes-border-0000001333720989#ZH-CN_TOPIC_0000001333720989__属性
API9边框设置:

https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-universal-attributes-border-0000001478341105-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001544375493__属性

 

5、API6 Java语言,如何重启Ability?
可通过getContext().restart();方法重启应用Ability,注意此方法需要在主线程中调用,示例如下:

cke_11248.png

 

6、HarmonyOS关于访问应用目录与非应用目录
Java语言使用File相关API、ArkTS或JS语言的@ohos.fileio模块,均只能访问应用下目录
访问非应用目录目前仅提供媒体库管理@ohos.multimedia.mediaLibrary,此模块仅ArkTS和JS支持,Java暂无相关API支持访问非应用目录。
此外,可以看下DataAbility功能,支持不同的应用间共享文件。

 

7、HarmonyOS Refresh组件使用$$运算符进行双向绑定时,编辑器报错“Cannot find name ‘$$this’”(API9)
编辑器中Refresh组件使用$$报错为编辑器误报,运行是正常的,可暂时忽略此报错使用,此问题将在后续版本修复。
编辑器报错如下:

cke_16617.png

 

8、HarmonyOS如何在MainAbilitySlice中通过代码创建一个手机热点?(API6 Java)
可参考下列文档添加指定的热点:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/connectivity-wlan-untrusted-hotspots-0000001063403862#section20770334143820
WLAN的其他接口功能可参考下列文档进行查看:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/connectivity-wlan-overview-0000000000030016
WLAN相关功能Demo示例代码:https://gitee.com/harmonyos/samples/tree/master/network/WLAN

 

9、HarmonyOS如何将通过getIpAddress()中获取的IP地址转换成实际的ip地址,如192.168.xxx.xxx?(API6 Java)
可参考下列方式进行转换,ip为通过getIpAddress()获取的地址
(ip & 0xFF) + “.” + ((ip >> 8) & 0xFF) + “.” + ((ip >> 16) & 0xFF) + “.” + (ip >> 24 & 0xFF)

 

10、HarmonyOS若想将应用一直保持后台获取定位信息,可以只申请LOCATION_IN_BACKGROUND权限不申请LOCATION权限吗?
不可以,申请LOCATION_IN_BACKGROUND权限必须同时申请LOCATION权限,两个权限一起申请的时候,弹出权限确认框,用户可以选择“仅在使用期间允许”和“始终允许”;若仅申请LOCATION权限,只会弹出“仅在试用期间允许”选择弹框,无法弹出只有“始终允许”的选择弹框。
获取位置权限参考文档:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/security-permissions-available-0000001051089272#section1727613371109


持续更新中…

 

 欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

posted @ 2023-05-26 15:10  华为开发者论坛  阅读(79)  评论(0编辑  收藏  举报