是否可以将Web APIs与WebAssembly一起使用?如果是这样,怎么样?我对Navigator interface更感兴趣。使用WebAssembly调用Web API方法
16
A
回答
15
是的,这是可能的。
如何在使用WebAssembly工具链时调用JavaScript API取决于特定的工具链。它实际上是FFI的一种形式:从C++代码看起来您调用了外部函数,但工具链连接到嵌入程序(这里是浏览器的JavaScript)。举几个例子:
工具链如Emscripten自动生成importObject
为WebAssembly.instantiate
(与沿和.js
文件)/大多数内部WebAssembly细节因此通常隐藏(我在下面记录它们)。
本设计允许您调用任何JavaScript代码,而不仅仅是JavaScript API。因此,您可以从WebAssembly调用您自己的JavaScript代码。工具链简化了处理常用Web API集的过程,有时也是以跨平台的方式处理的。 SDL2可以处理音频,键盘,鼠标,操纵杆和图形。
内部细节
WebAssembly的允许您通过an importObject
到WebAssembly.Instantiate
构造和WebAssembly.instantiate
功能:
new Instance(moduleObject [, importObject])
Promise<{module:WebAssembly.Module, instance:WebAssembly.Instance}>
instantiate(BufferSource bytes [, importObject])
的WebAssembly binary format包含import section,你(通过编译器如LLVM)申报它将使用的进口。在importObject
以及通过WebAssembly的call
和call_indirect
操作码的函数can be invoked中查找每个导入的字段。
因此,您可以调用任意JavaScript,然后调用任何您想要的Web API。未来,WebAssembly可能会在gain capabilities which allow the embedder expose APIs directly的嵌入式浏览器中包含DOM,canvas,events等。
相关问题
- 1. 如何使web API Post方法调用
- 2. 使用Web Api GET方法
- 3. 如何从webassembly websocket API调用?
- 4. 调用另一个流内容web api方法的Web api方法?
- 5. 使用SWAGGER在Web API文档中不调用ShouldSerialize *方法
- 6. 使用PostAsJsonAsync调用Web API
- 7. 使用POST方法调用REST API调用GET方法
- 8. Ajax调用Asp.net Web方法使用jQuery
- 9. 使用Angular 2调用ASP.Net Web方法
- 10. 使用URL调用Web服务方法
- 11. 通用Web Api方法
- 12. jQuery调用页面方法vs web服务vs Web API
- 13. 使用c#调用Web API 2方法HTTPClient使用CLR存储过程
- 14. Web方法不被调用
- 15. 无法使用Asp .Net中的ajax调用Web API控制器方法
- 16. Web API方法
- 17. Web API调用Web服务
- 18. 方法无法找到调用web服务API
- 19. api调用的URL方法
- 20. Web API调用“InvalidAuthorizationHeader”
- 21. Web服务调用的Web方法
- 22. 如何使用HTTPWebRequest在Web服务上调用Web方法?
- 23. 从另一个web api调用web api
- 24. 使用JavaScript和jQuery调用Web API
- 25. 使用IHTTP模块的Web Api调用
- 26. 如何调用web api get angularjs中的方法?
- 27. 如何在Web API中调用多个get方法
- 28. ASP.NET MVC 4 Web API方法调用元数据
- 29. ASP.NET Web Api调用非任务异步方法
- 30. web api cors preflight选项调用执行控制器方法