HarmonyOS C++和ArkTS交互
我们c++层分装了一套蓝牙交互的整体流程,蓝牙协议,解析,发送加密和解密的库。 遇到了和c++如何交互问题。
方案如下:
1、c++层创建了一个蓝牙的接口类,
class BlueDevice_cpp{
public:
virtual void permission() = 0;
virtual void scan() = 0;
virtual void connect()=0;
virtual void send() = 0;
virtual void disconnect()=0;
virtual ~BlueDevice_cpp() {}
};
2、ArkTS继承这个类或者创建一个新类实现上面类的方法(例如:BlueDevice_ts)。
3、在napi层 创建一个 BlueDeviceService 的单利类
4、BlueDeviceService 这个单利类有一个方法 native_setBlueDevece(BlueDevice * obj), 会接收ArkTS创建的这个对象(BlueDevice_ts)。并且把这个对象存在BlueDeviceService 类中
5、 后续调用 service调用scan 会直接使用 这个ts对象调用它的scan方法。 connect,send等的方法。 这个如何实现?
c++ 中拿到ts这个BlueDevice对象后,后续调用scan等方法出现对象是NULL的问题。 希望能给出一个demo,包括单利和ts对象的存储和使用。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
ArkTS和C++之间的交互
3206浏览 • 1回复 待解决
HarmonyOS ArkTS与C/C++的交互
2221浏览 • 1回复 待解决
ArkTS/js怎样与C++进行交互?
1904浏览 • 1回复 待解决
N-API接口实现ArkTS/TS/JS和C/C++之间的交互
3370浏览 • 1回复 待解决
HarmonyOS ArkTs和C++实时通信
1315浏览 • 1回复 待解决
HarmonyOS C/C++库开发 C侧和TS之间的数据交互
2254浏览 • 1回复 待解决
ArkTS与Native(C/C++/Rust)通过什么方式实现调用交互
3577浏览 • 1回复 待解决
HarmonyOS 调用顺序app ArkTS -> app C++ -> lib C++ -> lib ArkTS -> lib C++,在lib C++ -> lib ArkTS -> lib C+.....+这个流程中不会触发lib的Init方法导致ArkTS最终无法调用到lib C++
1290浏览 • 1回复 待解决
HarmonyOS ArkTS如何调C++的api,或C++如何调用ArkTS的api
1356浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用HarmonyOS Node-API实现ArkTS与C/C++的跨语言交互?
1343浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
1925浏览 • 1回复 待解决
HarmonyOS ArkTS和c++ map数据结构转换最佳实践
1624浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS的对象
3835浏览 • 1回复 待解决
C++调用ArkTS 定义的方法
3897浏览 • 1回复 待解决
ArkTS与C++互相直接调用
5343浏览 • 1回复 待解决
如何实现ArkTS与C/C++的HashMap转换?
2528浏览 • 1回复 待解决
C++ 如何获取操作 Arkts 实例
1951浏览 • 1回复 待解决
如何实现ArkTS与C/C++的数组转换
2199浏览 • 1回复 待解决
HarmonyOS ETS和c++层通信
1244浏览 • 1回复 待解决
如何实现ArkTS与C/C++的对象传递
2179浏览 • 1回复 待解决
C++同步调ArkTS里面的方法
1916浏览 • 1回复 待解决
有人知道在Stage 模型下ArkTS怎么和C++通信吗?
3391浏览 • 0回复 待解决
ArkTS 和.so交互的问题
1459浏览 • 1回复 待解决
将C++层分配的对象在ArkTS层管理,ArkTS层通过接口访问C++层对象业务
2012浏览 • 1回复 待解决
#鸿蒙通关秘籍# 怎样在HarmonyOS NEXT开发中处理C++与ArkTS异步接口的交互调用?
983浏览 • 0回复 待解决
可参考如下示例:
NAPI开发还可以参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/node-api_u5b9e_u73b0_u8de8_u8bed_u8a00_u4ea4_u4e92-V5