我们有一个 .NET Maui App 用例,我们从 Azure 动态加载 WASM,我们希望将以下四个(Emscripten 生成的)文件保存在可以使用自定义组件访问的 tmp 文件夹中,之后我们将处置内容。
此外,我们有一个用例,我们希望将所有相同的资源嵌入到单个 html div 片段中,无论是在 .NET Blazor 应用程序中使用,还是仅由互联网。
这些文件是:
index.html
index.wasm
index.data
index.js
- 演示位于https://yatter.itch.io/sdl2wasm
- 解决此问题的存储库位于https://github.com/YatterOfficial/WASM.MobileBanner
- 两者都在下面讨论。
- 我们正在尝试创建一组简单的规则来创建 WASM 横幅广告,使用 SDL2 和 C++,在https://www.match2one.com/blog/standard-banner-sizes/中列出的所有标准行业尺寸中
在 Xamarin Forms 中,我们会将这样的动态内容作为字符串加载,尽管我们没有使用 WASM,但我们会定期将所有资产嵌入到 HTML 文件本身中——无论是作为脚本和 CSS,还是在同类的情况下图像,如 Base64 等,然后将字符串直接加载到 WebView。
.NET Maui 中做这种事情的最佳模式是什么?希望不是像 Xamarin Forms 这样的字符串侧加载解决方案,原因是我们想要使用它的自定义组件只是 ListItems 列表中的一个 ListItem。
我已经成功地在 HTML 文件中嵌入了一个 .wasm 文件var bytes = "data:application/wasm;base64,AGFzbQEAAAABBAFgAAADAwIAAAQFAXABAQEFAw ..."
,这是一个轻而易举的事情,.data 文件似乎更具挑战性,可以说我们可以沿着将所有这些包装在一个 Div 片段中并传递的路径到自定义组件 - 但我想知道是否有另一条路线,我可以将所有四个文件保存到存储中,然后将它们提供给自定义 Blazor 组件?
我欢迎两个方面的答案:
- 如何将 WASM 嵌入到 HTML 片段中,以供自定义组件使用,或者确实能够作为 html 片段被推送到网络上的任何网页中;和,
- 如何将上面四个 Emscriptem 生成的文件存储在临时位置,以供自定义 Blazor 组件使用。
对于上面的 (1),我在https://yatter.itch.io/sdl2wasm设置了一个基本演示,它由上面列出的四个文件组成,挑战是将所有内容嵌入in a single HTML div
到一个 HTML 页面中。该演示的 repo 位于https://github.com/YatterOfficial/WASM.MobileBanner并且任何提示,以完成拉取请求以解决问题,都将受到重视。
路线 (1) 非常具有挑战性,虽然它是我们想要的选择,但路线 (2)(如果可能的话)将使我们能够快速跟踪产品,同时解决路线 1 的所有挑战。
就大局而言,这一挑战背后的原因是,能够在单个片段中使用 WASM 轻松创建横幅广告,这将是革命性的,因为我们曾经在 Flash 中制作横幅,直到插件像已弃用。
在我看来,WASM 革命不会被完全接受,除非我们不仅可以将所有内容嵌入到单个 div 标签中,而且可以将多个 WASM-div 片段嵌入到单个页面中。毫无疑问,在解决了这个问题之后,主题将变为在一个页面中授权多个 WASM-div,从而能够相互交谈。自然,它们不必都是可见组件,每个组件都有自己的画布。
我对此很感兴趣:D
谢谢!