是否可以將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. 如何從webassembly websocket API調用?
- 3. 使用Web Api GET方法
- 4. Web API方法沒有從angularjs調用
- 5. 調用另一個流內容web api方法的Web api方法?
- 6. 使用參數通過Html.UpshotContext調用Web api方法
- 7. 使用SWAGGER在Web API文檔中不調用ShouldSerialize *方法
- 8. 調用Web API獲取使用數據參數的方法c#
- 9. 使用PostAsJsonAsync調用Web API
- 10. 使用POST方法調用REST API調用GET方法
- 11. 「NetworkError:405的方法從angular.js調用方法後使用Web API時,不允許
- 12. 使用KSOAP2從eclipse調用web方法
- 13. Ajax調用Asp.net Web方法使用jQuery
- 14. 使用Angular 2調用ASP.Net Web方法
- 15. 使用URL調用Web服務方法
- 16. 通用Web Api方法
- 17. 在同步方法中調用異步web api方法throws error
- 18. jQuery調用頁面方法vs web服務vs Web API
- 19. 使用c#調用Web API 2方法HTTPClient使用CLR存儲過程
- 20. Web方法不被調用
- 21. 無法使用Asp .Net中的ajax調用Web API控制器方法
- 22. Web API方法
- 23. 如何從mvc應用程序http url調用web api方法?
- 24. 通用方法的同步調用Web API服務
- 25. Web API調用Web服務
- 26. 方法無法找到調用web服務API
- 27. Web API調用「InvalidAuthorizationHeader」
- 28. Ajax調用Web API
- 29. Web服務調用的Web方法
- 30. 在Web服務中調用Web方法