问题标签 [wasm-bindgen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - WinUI ProgressRing 不显示在 WASM (Uno 2.4) 上
我正在尝试添加新的 WinUI 2.4 ProgressRing。它在 UWP 应用程序上完美运行,但在 WASM 中不显示。
我的 App.xaml 和 Mainpage.xaml 是:
应用程序.xaml:
MainPage.xaml:
这里没有任何 ProgressRing 可用,与 UWP 不同。
如Uno Platform 2.3 博客文章中所述,ProgressRing 在 WASM 上不可用,就像在 UWP 上一样。它应该是。
Nuget 包版本:
- Uno.UI.RemoteControl {2.4.0}
- Uno.Wasm.Bootstrap {1.2.0}
- Uno.Wasm.Bootstrap.DevServer {1.2.0}
- Microsoft.Extensions.Logging.Filter {1.1.2}
- Microsoft.Extensions.Logging.Con... {1.1.1}
- NETStandard.Library {2.0.3}
- Uno.UI {2.4.0}
- Microsoft.NETCore.UniversalWindo... {6.2.10}
- Microsoft.Extensions.Logging.Con... {1.1.1}
- Microsoft.Extensions.Logging.Filter {1.1.2}
- Microsoft.UI.Xaml {2.4.0}
- Uno.Core {2.0.0}
我怎样才能解决这个问题 ?谢谢。
rust - 如何从闭包中访问“this”?
我正在传递一个 Rust 闭包,它充当 JavaScript API 的回调函数,如wasm-bindgen
. API 将信息存储在this
可以在回调中访问的关键字中。
如何访问this
我的 Rust 闭包代码中指向的对象?
rust - 如何使用 Wasm-Bindgen Web_sys Wasm-pack 将字符串从 Js 传递到通过 Rust 生成的 Wasm
代码是基本的,我从 js 调用一个函数,它带有一个在 lib.rs 中声明的字符串输入,但是该字符串没有传递给 wasm 中的函数我收到一个空字符串,反向也不起作用我不是也可以将字符串从 wasm 传递给 js。
wasm 文件看起来像这样
js 看起来这个 wasm 已经成功启动了其他功能工作正常
货物 toml 看起来像这样
c# - 自定义 WinUI ProgressRing 的样式在带有 Uno 2.4 的 WASM 上不可用
我知道使用Uno 尚不支持的模板绑定方式全局修改主题颜色。(我为 ToggleSwitch 尝试过,现在 ToggleSwitch 自定义样式在 UWP 和 WASM 上都能完美运行)。所以,我以同样的方式为 WinUI 2.4 ProgressRing 准备了一个自定义样式。我从 WinUI Github repo 收集了 ProgressRing 的默认样式并对其进行了自定义:
我的 ProgressRing 是:
但是,WASM 显示默认样式:(
套餐
WASM 上 WinUI ProgressRing 的样式必须与 UWP 样式匹配。我怎样才能解决这个问题 ?谢谢。
javascript - 在 Rust 中使用 rug 和 wasm-bindgen
我想将 rug crate 与 wasm-bindgen 一起使用,以允许我在 Web 浏览器中使用任意精度的算术。但是,每当我尝试编译时,它都无法构建库,说的是
未解决的进口libc::c_char
, libc::c_int
, libc::c_long
.
有解决方法吗?如果涉及 Emscripten 很好,但我希望能够主要编写 Rust 代码。
javascript - 如何使用 wasm-bindgen 调用任意先前定义的 JavaScript 函数 Rust?
在我的 javascript 中,在调用 wasm 之前,我定义了一个函数 jalert,稍后我想使用 wasm 从 Rust 调用它。我在 wasm-bindgen 的文档中找不到如何调用我之前在 javascript 中定义的任意函数,如下所示。我得到了像 alert 和 console.log 这样的函数,因为它们已经是 javascript 的一部分,但是我不能让这个函数 jalert 工作。我在浏览器中收到一个错误,说它没有定义。有了警报功能,它不会抱怨。
在锈文件中lib.rs
:
javascript - 为什么 Rust WASM 指针和 JS 指针的值不同?
假设我在 Rust 代码中有以下定义:
JS 代码创建一个实例RustType
并将其传递给print_addr
函数:
像这样修改生成的print_addr
函数后index_bg.js
:
在开发控制台中,我得到以下输出:
问题是为什么 Rust 指针和 JS 指针的值不同?同样根据我的观察,Rust 指针和 JS 指针之间的差异总是等于 4。为什么会这样?
rust - 如何从 Wasm 内存缓冲区中读取元组结构?
我定义了一个元组结构:
我的假设
ChangedCell
重 9 个字节(bool
:1 个字节,u32
:4 个字节,u32
:4 个字节)
我做了什么
我为JavaScript返回了一个pointer, length
for :Vec<ChangedCell>
预期行为
isVal
成为valid [byte]
val1
成为valid [byte] * 4
val2
成为valid [byte] * 4
问题
I am getting Garbage values!
你如何将这样的内容读入 JavaScript?
rust - 如何使 Rust Game of Life WebAssembly 作为静态网站运行?
我已经阅读了 Rust Game of Life 的教程,并且在 Web 浏览器中有一个可以运行的游戏,但它只能在与它捆绑的演示 Web 服务器上运行。我可以启动服务器,npm start
它在端口 8080 上运行 webpack-dev-server。当我通过该端口访问该站点时,它工作正常。但是,如果我尝试将该站点复制到 Apache 之类的 Web 服务器,它就无法正确加载。我目前从中得到的错误是:
在教程中,网站的根目录是www/
存储库中调用的文件夹,并且从 Rust 程序生成的 wasm 模块放置在pkg/
. 有一个符号链接www/node_modules/wasm-game-of-life
,../../pkg/
我已经用顶级pkg/
文件夹的实际副本替换了该符号链接,以便网站完全包含在www/
文件夹中,然后将该文件夹放在我的网站上http:// www.north-winds.org/gol/但是,访问它会返回上述错误。我需要修改什么才能使其独立工作?
据我了解,这个 WebAssembly Game-of-Life 基本上是一个独立的客户端应用程序,除了可以提供带有适当 mime 类型的静态文件的 Web 服务器之外,不需要任何东西。我看不出有什么特别的要求。我确实在某处看到提到 WebSockets,但我不知道为什么这个应用程序需要这样做。我将此与来自https://webassembly.org/的 C 的“Hello, World”WebAssembly 示例进行了比较,最终得到了一个.wasm
从 C 源代码生成的文件,以及一个用于执行它的 JavaScript 和 HTML 支持文件。当简单地复制到静态 Web 服务器位置时,这些文件可以正常工作。这就是我想要的 Rust 示例。
Rust Game-of-Life 中的一些相关代码如下。顶级 HTML 文件包括以下几行:
引导 JavaScript 文件仅包含以下内容:
它引用的 index.js 文件在 Wasm 的其他粘合逻辑中包含以下内容:
使这项工作独立起来缺少什么?