【写在前面】
之前和大家分享过一下HarmonyOS应用开发相关问题,今天继续和大家分享!
【前提简介】
本文档主要总结HarmonyOS开发过程中可能遇到的一些问题解答,主要围绕HarmonyOS展开,包括但不限于不同API版本HarmonyOS开发、UI组件、DevEco Studio、Gitee示例代码等,随工作将持续更新。
【FAQ】
1、HarmonyOS表单页面,当页面向下滑动后点击输入框获取焦点,弹出的键盘会遮住输入框
此问题在API 9已解决,旧版本无法回合可采取其他方式规避,如:获取焦点软键盘弹起后,可将表单位置上移。
2、LiteWearable轻量级智能穿戴应用,放入几百K图片素材,生成包大小增加几十兆,在手表中无法安装
对于轻量级智能穿戴应用打包方式,图片素材增加导致包大小增加问题,目前只能通过控制图片大小来控制包大小,暂无其他规避手段。
3、DevEco 海外版本与国内版本
国内DevEco版本可通过此链接下载:
HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者
海外DevEco版本可通过此链接下载:
HUAWEI DevEco Studio - HUAWEI HarmonyOS APP
海外版本较国内版本而言更新较慢,暂不推荐海外开发者使用国内较高版本,因为高版本相关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,注意此方法需要在主线程中调用,示例如下:
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组件使用$$报错为编辑器误报,运行是正常的,可暂时忽略此报错使用,此问题将在后续版本修复。
编辑器报错如下:
8、HarmonyOS如何在MainAbilitySlice中通过代码创建一个手机热点?(API6 Java)
可参考下列文档添加指定的热点:
文档中心:添加指定的热点
WLAN的其他接口功能可参考下列文档进行查看:
文档中心:WLAN的其他接口功能
WLAN相关功能Demo示例代码:Samples: We provide a series of app samples to help you quickly get familiar with the APIs and app development process of the HarmonyOS SDKs. | 为帮助开发者快速熟悉HarmonyOS SDK所提供的API和应用开发流程,我们提供了一系列的应用示例 - Gitee.com
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权限,只会弹出“仅在试用期间允许”选择弹框,无法弹出只有“始终允许”的选择弹框。
获取位置权限参考文档:
文档中心:获取位置权限
持续更新中…