Возможно ли использовать Web APIs с помощью WebAssembly? Если да, то как? Меня больше интересует Navigator interface.Использование WebAssembly для вызова методов Web API
ответ
Да, это возможно.
Как выполнять JavaScript API API при использовании инструментальной привязки WebAssembly до этой конкретной инструментальной цепочки. Это эффективная форма FFI: из кода на C++ похоже, что вы вызываете внешнюю функцию, но привязки привязки к встраиванию (здесь, в JavaScript браузера). Несколько примеров:
компилированные инструменты, такие как Emscripten автоматически генерировать importObject
для WebAssembly.instantiate
(наряду с .html
и .js
файлов)/Большинство внутренних данных WebAssembly поэтому обычно скрыты (я документирую их ниже).
Эта конструкция позволяет вам называть код JavaScript, а не только API JavaScript. Поэтому вы можете вызвать свой собственный код JavaScript из WebAssembly. Инструментарий просто упрощает обработку общих наборов веб-API, иногда кросс-платформенным способом, например. SDL2 делает звук, клавиатуру, мышь, джойстик и графику.
Внутренние детали
WebAssembly-х JavaScript API позволяет передавать 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
, а функции can be invoked через код операции call
и call_indirect
WebAssembly.
Таким образом, вы можете вызвать произвольный JavaScript, который, в свою очередь, может вызвать любой веб-API, который вы хотите. В будущем WebAssembly может gain capabilities which allow the embedder expose APIs directly, в браузере это может включать DOM, холст, события и т. Д.
- 1. Ajax Web API вызова
- 2. Использование отражения для вызова типов параметризованных методов
- 3. Использование HttpClient.GetAsync для вызова Web API, похоже, зависает
- 4. Проектирование RESTful API для вызова методов процесса
- 5. избежать отражения api для вызова динамических методов
- 6. Использование отражения для вызова случайных методов
- 7. Использование строк для вызова методов в Java
- 8. Использование методов API fancybox
- 9. Javascript Web API для вызова цикла
- 10. Странные ошибки 405 против методов web api
- 11. Использование Retrofit для вызова API
- 12. Вызова Web API на Междоменных
- 13. Asp.Net Web Api несколько методов get
- 14. Недостатки методов Web Api, возвращающих задачи
- 15. Использование методов API android API 4
- 16. Критерии для вызова двух методов перегруженных методов?
- 17. Использование класса друга для скрытия частных статических методов обратного вызова
- 18. Правильный способ вызова методов телеграммы api
- 19. Краткий синтаксис для вызова методов экземпляра после вызова методов LINQ
- 20. web api routing не работает для двух методов Get?
- 21. Использование Steam Web API из приложения Android
- 22. WebAssembly через d8.exe
- 23. Метод вызова для разных объектов в контроллере web api
- 24. Использование gmail api с asp.net web api
- 25. Использование SparkR JVM для вызова методов из файла jar Scala
- 26. Загрузить файл с помощью вызова Web API
- 27. Web API возвращает XML на JSON вызова
- 28. Общий ресурс и асинхронной Web API вызова
- 29. Понимание Wasm (WebAssembly) прототип
- 30. Использование Javascript для вызова REST API