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

发布时间 2023-07-07 10:32:43作者: Mayism123

贴接上回。。。

 

【往期FAQ参考】

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

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

 

【本期FAQ】

1、第一次调用geolocation.getCurrentLocation()接口,弹出权限弹框后并未返回结果,再次调用接口才会成功返回?(API8 ArkTS)
首次调用接口时由于先进行权限校验,首次应用并未允许授权所以会提示授权,授权成功后需再次调用接口才能 正常返回结果;建议再调用接口前完成授权或接口未返回结果进行再次调用逻辑。此功能在API9的获取位置接口中已修复,API9首次调用完成授权后直接成功返回结果。

 

2、HarmonyOS本地模拟器输入法如何输入中文?
HarmonyOS本地模拟器不支持中文输入法,可下载x86的输入法APP,将APP拖拽到本地模拟器中进行安装,安装完成后使用新安装的输入法可支持输入中文功能。

 

3、openharmony应用安装时报错:error: install parse profile missing prop
此报错是由于设备的软件版本低于SDK版本导致的,设备的OpenHarmony版本必须不低于DevEco Studio中对应API版本的SDK版本,建议降低设备的OpenHarmony版本,或者降低DevEco Studio版本来降低对应的SDK版本。
(注意降低IDE版本时,建议重新下载SDK或者换个目录下载SDK,因为若不卸载高版本SDK可能会存在低版本IDE使用高版本SDK的情况,此时会导致编译安装成功,但工程运行一直停留在启动页面情况)

 

4、TextField 选取文字后无法显示剪切、复制、粘贴按钮功能(API7 Java)
API7 Java的TextField组件暂不支持选取文字后显示剪切、复制、粘贴功能,API7 JS与API8及以上版本的输入框组件支持此功能,建议使用高版本进行功能开发。

 

5、自定义bindPopup控件中放置list组件,当列表高度超过气泡时,会出现滑动效果与自动关闭功能冲突(ArkTS API8)
此问题在ArkTS API9中已修复。

 

6、HarmonyOS ArkTS有调用系统相机的接口吗?
HarmonyOS暂未开放调用系统相机的接口;
目前仅OpenHarmony开放相关接口,API9开放相机管理接口@ohos.multimedia.camera,为系统接口,参考文档:https://docs.openharmony.cn/pages/v3.2/zh-cn/application-dev/reference/apis/js-apis-camera.md/
API10对相机管理开放接口进行修改,API10参考文档:https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/reference/apis/js-apis-camera.md/

 

7、HarmonyOS ArkTS input长按粘贴、剪切后不走onChange事件,无法获取最新文本内容(API8)
此问题API9已修复,若在input中长按粘贴或剪切部分文本后,API9中可通过onChange刷新input内容,建议使用高版本进行功能开发;此外若想获取粘贴、剪切、复制的文本内容,可通过onPaste、onCut、onCopy事件,参考文档如下:
https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-basic-components-textinput-0000001427584864-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001523968610__事件

 

8、服务卡片可以跳转页面吗?
卡片属于后台服务,后台服务不支持直接拉起前台页面。

 

9、ArkTS 如何读取工程中本地json文件中数据?
先获取context,通过contenxt获取当前应用的沙箱路径;然后通过文件管理API(如@ohos.fileio)读取json文件信息。
参考文档如下:
https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001333640945#ZH-CN_TOPIC_0000001333640945__fileiostatsync
https://developer.huawei.com/consumer/cn/forum/topic/0201107540153210858?fid=0102683795438680754

 

10、Android开发的APK选择卡槽拨打电话,使用如下代码在鸿蒙系统上运行始终使用卡槽1拨打电话,如何适配?
对于鸿蒙系统,若需要实现选择卡槽拨打电话,需要将参数slotid转换成subid传入。
相关类:frameworks/base/telephony/java/android/telephony/SubscriptionManager.java
方法:public int[] getSubscriptionIds(int slotIndex) {}
问题代码如下:

 

 

11、开发和上架不同阶段,在一个HarmonyOS应用中点击按钮如何拉起另一个HarmonyOS元服务?(ArkTS API9)
在开发阶段:
对于FA模型,可通过featureAbility.startAbility 隐式Want方式去启动另一个HarmonyOS应用的ability;
对于Stage模型,可通过context.startAbility去启动另一个HarmonyOS应用的ability;
在元服务上架后,支持通过AppLinking跳转元服务页面,但需要添加白名单才可实现此功能。

 

持续更新中…