HarmonyOS鸿蒙Next在TV和Wearable上居然不支持setTimeout和setInterval方法,仅仅只能在LiteWearable上支持,我都折腾了两天了
HarmonyOS鸿蒙Next在TV和Wearable上居然不支持setTimeout和setInterval方法,仅仅只能在LiteWearable上支持,我都折腾了两天了 下面是我的代码,
然后这个打印结果没有出来,取而代之的是一个底层的报错,截图如下
在TV和Wearable上都会报这个错。这个功能太重要了,希望华为能尽早修复
更多关于HarmonyOS鸿蒙Next在TV和Wearable上居然不支持setTimeout和setInterval方法,仅仅只能在LiteWearable上支持,我都折腾了两天了的实战教程也可以访问 https://www.itying.com/category-93-b0.html
下面是转换后的Markdown文档:
下面是我的代码,

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

在TV和Wearable上都会报这个错。这个功能太重要了,希望华为能尽早修复
更多关于HarmonyOS鸿蒙Next在TV和Wearable上居然不支持setTimeout和setInterval方法,仅仅只能在LiteWearable上支持,我都折腾了两天了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
苦苦折腾了两天,终于自己把这个问题搞定了。官方手册翻遍了,官网底层c实现js也查了,始终找不到好思路,只好不停的尝试各种办法。经过100+次的尝试,终于找到一个解决办法了。
无意间在app.js种调用了setTimeout方法,发现是可以正常执行的,没有我之前的那个TypeError的错误了,而之前在页面中直接调用这个是不可行的。瞬间像发现了新大陆了,于是我自己在app.js中定义一个mySetTimeout方法来进行中转setTimeout方法。代码如下,
然后我们就要想办法在页面中如何调用app.js中我们自己封装的方法了。这里仔细查阅官方api手册会发现有一个好东西,就是this.$app.$def,于是页面中的代码可以这么写,
在此,问题得到完美解决,setInterval的解决方案同理。
实现上虽然麻烦了点,总算是解决了问题,希望华为官方后面能更新api以支持可以直接页面中调用定时器。
目前我还没有在论坛、官网、百度上找到任何可以用的解决方案,大家觉得有用可以把帖子顶一顶,防止更多的开发者跟我一样被这个api坑两天。
层主,也就是说定时器必须写在app.js里然后再调用不能直接写在index.js这样吗,现在修复了吗?
官方已经修复了这个bug,可以直接放心使用,无需使用我这个解决方案了。
亲爱滴开发者 ,这个问题已经在处理中啦,稍后答复你哟 ,么么哒
在HarmonyOS鸿蒙Next中,setTimeout
和setInterval
方法在TV和Wearable设备上确实不支持,仅在LiteWearable设备上可用。这是由于不同设备的系统架构和资源限制导致的。TV和Wearable设备通常运行在更复杂的场景下,系统对定时器的管理方式与LiteWearable设备不同,因此未提供这两个方法。开发者需要根据设备类型选择合适的定时器实现方式,例如使用TaskDispatcher
或Timer
等替代方案。
在HarmonyOS鸿蒙Next中,setTimeout
和setInterval
方法在TV和Wearable设备上确实不被支持,这可能是由于这些设备的资源限制或系统设计考虑。建议您使用其他替代方案,如requestAnimationFrame
或setImmediate
来实现类似的功能。同时,确保查阅最新的官方文档,以获取最新的API支持和最佳实践。