shawking:WebAssembly现在能访问数据库了吗?
(2022-09-03 10:23) 
你说的是IndexedDB吧?
WebAssembly是不可以直接读取的,可以写一套C++版本的IndexedDB,用C++封装一层数据库接口,接口内部调用原生的js的操作,然后js把数据返回给C++层面
。目前前端的开发还离不开js,因为其他语言的生态太差了,应该很难找到想要的C++版本的库,所以这个封装C++版本的工作可能需要自己完成。
我举个简单的例子来说明下,比如要在C++层面判断当前设备是否是触摸设备,wasm是没有权限直接访问的。
在C++层面提供如下的接口:
bool isTouchDevice();
函数内部调用原生js返回bool值:
bool isTouchDevice()
{
return (bool)EM_ASM_INT_V(return 'ontouchstart' in document.documentElement ? 1 : 0;);
}
假设把这类接口封装成一个库,那么就是C++版本的访问本地设备信息的库。
然后C++应用层调用这个库的接口即可获取设备信息。