下面的问题绿色代表当前已解决,蓝色代表华为已经有解决方案并在新版本中解决,红色代表未解决,黑色代表自己想出的规避解决方案,但是还是希望官方能够解决。

一、工具相关

(1)xml代码中飘红现象,但是实际代码运行时生效的

给华为反馈的HarmonyOS Bug与解决进度,涉及底层、java、js等

该问题已经在SDK4中解决,如果之前安装过SDK3,需要手动将SDK3删除才不会有此问题。

(2)graphic目录下的代码编写无任何提示
该问题已经在规划中,下一个IDE版本发布解决

(3)$media、$graphic等无法关联跳转

该问题已经在规划中,下一个IDE版本发布解决

(4)Eco Studio无法导入外部module

单独编写了一个手动导入的办法,请见我另一篇帖子。

二、JS代码相关
(1)、JS FA调用java PA的一个关键操作引入,功能正常,但是IDE飘红
给华为反馈的HarmonyOS Bug与解决进度,涉及底层、java、js等
该问题已经在下一个SDK版本中解决,等待发版本

(2)、JS vedio标签中control属性设置为false,视频有声音没图像

该问题卡了非常之久,最开始认为不是bug,是我单例现象,华为方其他合作方和内部开发测试无问题。后来我经过模拟器、真机、精简代码、反复对比测试等各种手段发现依然不行,最后拉了华为各个领域的一堆技术支持支撑,最终确认这就是bug,根因是对外发布的版本有一段代码没有合入,确认此bug之后会在后续版本中更新此问题。

(3)、js中的dialog只能从屏幕底部弹出,并且不能设置dialog的位置为屏幕居中
(4)、js FA中的img或者vedio标签如何加载ava PA中传递过来的图片或者视频

(5)、在tv和Wearable居然不支持setTimeout和setInterval方法,仅仅只能在LiteWearable上支持
下面是我的代码,

给华为反馈的HarmonyOS Bug与解决进度,涉及底层、java、js等

然后这个打印结果没有出来,取而代之的是一个底层的报错,截图如下

给华为反馈的HarmonyOS Bug与解决进度,涉及底层、java、js等

在TV和Wearable上都会报这个错。

后来通过翻阅HarmonyOS底层源码等方式,自己尝试找到一个规避办法。

在app.js种调用了setTimeout方法,发现是可以正常执行的,没有我之前的那个TypeError的错误了,而之前在页面中直接调用这个是不可行的。瞬间像发现了新大陆了,于是我自己在app.js中定义一个mySetTimeout方法来进行中转setTimeout方法。代码如下,

 

然后我们就要想办法在页面中如何调用app.js中我们自己封装的方法了。于是页面中的代码可以这么写,如下图

给华为反馈的HarmonyOS Bug与解决进度,涉及底层、java、js等

在此,问题得到解决,setInterval的解决方案同理。

实现上虽然麻烦了点,总算是解决了问题,希望华为官方后面能更新api以支持可以直接页面中调用定时器。

 

三、Java代码相关

(1)、不支持webview
(2)、java读写本地文件,文件路径如何编写?
目前官网手册上编写了动态权限、读写文件相关的api,但是官网手册上写的路径的写法是不可靠的,这个路径具体如何编写?比如读取sdcard下的,读取app自带目录的,/data/data/app包名。 并且关于如何读取工程rawfile目录下的文件,官网描述了如何读取的api,但是路径如何取不清楚,这个自己试出来了。

(3)、不支持系统相册调用
(4)、Java graphic文件中支持shape但是不支持selecter写法,不方便快速定制一些UI效果。
(5)、模拟器不支持横竖屏切换,SDK也没有横竖屏切换相关的api??
(6)、远程模拟器没有声音

等待新版本更新解决

(7)、远程模拟器只能启动一个,没有本地模拟器,无法通过模拟器做传感器、分布式等开发

等待新版本更新解决

四、开发板相关


文章后续内容和相关附件可以点击下面的原文链接前往学习

原文链接:https://harmonyos.51cto.com/posts/3272#bkwz


想了解更多关于鸿蒙的内容,请访问:

51CTO和华为官方战略合作共建的鸿蒙技术社区

https://harmonyos.51cto.com/#bkwz