HarmonyOS 鸿蒙Next ets rpc.IRemoteObject 使用中的一些坑

HarmonyOS 鸿蒙Next ets rpc.IRemoteObject 使用中的一些坑 使用的是API8

ide 中使用IRemoteObject.sendRequest(code: number, data: MessageParcel, rep: MessageParcel, options: MessageOption) 总是预编译的是下面7的过时接口。。。

/**
 * @deprecated since 8
 * @since 7
 */
sendRequest(code: number, data: MessageParcel, rep: MessageParcel, options: MessageOption): boolean;

/**
 * @since 8
 */
sendRequest(code: number, data: MessageParcel, rep: MessageParcel, options: MessageOption): Promise<SendRequestResult>;

如下图所示

需要添加//@ts-ignore 忽略该错误,编译之后接口调用正常


还有下面这种写法

/**
 * @since 8
 */
sendRequest(code: number, data: MessageParcel, re: MessageParcel, options: MessageOption, callback: AsyncCallback<SendRequestResult>): void;

编译后调试的时候回调里error的类型是SendRequestResult类型??? 是我写法有问题吗,ide预编译的显示的是BusinessError类型,无语


本人js小白,有问题麻烦指正下


顺便吐槽下发帖的敏感词匹配真无语,居然不是全词匹配。。。 代码中一些单词被模糊匹配到就得改,比如上面的接口中rep。l。y 变量。 真的是无语


更多关于HarmonyOS 鸿蒙Next ets rpc.IRemoteObject 使用中的一些坑的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

开发者您好,写法没问题。IDE提示该过时接口的情形在下个版本中将会解决,请耐心等待。

更多关于HarmonyOS 鸿蒙Next ets rpc.IRemoteObject 使用中的一些坑的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题3.1版本还是存在呀。。。

欢迎开发小伙伴们进来帮帮楼主

关于HarmonyOS(鸿蒙)中ets rpc.IRemoteObject使用中的一些坑,以下是一些直接相关的解答:

在HarmonyOS开发中,使用ets rpc.IRemoteObject进行跨进程通信时,可能会遇到一些常见问题。首先,确保你正确实现了IRemoteObject接口,并且服务端和客户端的版本保持一致,以避免因接口不匹配导致的通信失败。

其次,要注意IRemoteObject的生命周期管理。如果服务端进程被意外终止,客户端持有的IRemoteObject引用可能会变为无效,此时进行远程调用会导致异常。因此,在调用前最好进行有效性检查,或者在捕获异常后进行相应处理。

另外,数据传输时,要注意数据的序列化和反序列化过程。复杂的数据结构可能会导致序列化失败,进而影响通信。建议对传输的数据进行必要的校验和处理。

此外,还要注意权限管理。在进行跨进程通信时,确保客户端具有访问服务端所需资源的权限,否则通信请求会被拒绝。

最后,网络状态也会影响远程调用的成功率。在网络不稳定或中断的情况下,远程调用可能会失败。因此,在网络条件不佳时,要考虑增加重试机制或提供友好的用户提示。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部