SDL2与C++创建单HTML片段WASM及.NET Maui加载方案咨询
业务场景需求
我们有两个相关业务场景需技术解决方案:
- .NET Maui应用场景中需从Azure动态加载WASM资源,拟将Emscripten生成的index.html、index.wasm、index.data、index.js四个文件存储到临时文件夹,供自定义组件读取后销毁资源内容;
- 需将上述全部资源嵌入单个HTML div片段,实现通用适配,可同时用于.NET Blazor应用或任意公网网页。
现有基础与约束
我们正在尝试制定一套基于SDL2和C++制作符合行业标准尺寸WASM横幅广告的规则,目前已有上线demo及配套开源仓库。
此前在Xamarin Forms中我们通常将所有资源(脚本、CSS、图片转Base64等)嵌入HTML文件,以字符串形式直接加载到WebView,但此次.NET Maui场景下我们不希望使用类似的字符串侧加载方案,因为使用该资源的自定义组件只是列表项中的一项。
目前已成功将.wasm文件以var bytes = "data:application/wasm;base64,AGFzbQEAAAABBAFgAAADAwIAAAQFAXABAQEFAw ..."的形式嵌入HTML文件,但.data文件嵌入难度较高。
待解决技术需求
我们希望获得两个方向的解决方案:
- 方案①(首选目标):如何将WASM资源嵌入HTML片段,既可供自定义组件调用,也可作为HTML片段直接插入任意网页;
- 方案②(短期落地方案):如何将上述四个Emscripten生成的文件存储到临时位置,供自定义Blazor组件调用。
方案①实现难度较高,方案②若可行可帮助我们快速推进产品上线,同时可同步打磨方案①的细节。从长期来看,实现单div内嵌WASM、单页支持多个WASM div片段互通的能力,可替代原Flash横幅广告的能力,对WASM的普及有重要意义,欢迎相关解决方案建议或PR提交。
内容的提问来源于stack exchange,提问作者Anthony Harrison
相关产品推荐
相关产品推荐

