news 2026/7/2 6:12:41

演示使用C#写的LiveCharts,点击按钮动态生成一些数据。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
演示使用C#写的LiveCharts,点击按钮动态生成一些数据。

Android真机运行

2. 模拟器运行

二、实现原理

原理比较简单,如下图所示,将C#写的PixUI应用及C++写的Skia引擎编译为WebAssembly,然后通过微信小程序的WXWebAssembly加载,并在canvas(WebGL)通过skia绘制出用户界面,监听微信小程序的事件传给C#处理后重新绘制界面。

三、开发步骤

1. 创建wasmconsole项目

创建项目前请确认已经通过dotnet workload install安装wasm-experimentalwasm-tools

dotnet new wasmconsole

2. 参考PixUI.Demo.Wasm.proj修改工程文件

3. 使用PixUI开发用户界面

4. 编译并分包

因微信小程序包大小限制问题,使用PixUI.WxmpPkgs工具自动拆分生成pkgs目录

5. 将如图所示的目录及文件复制进PixUI.Demo.Wxmp/miniprogram/dotnet目录内

6. 修改dotnet.native.js

因微信小程序的兼容问题,以及改动了dotnet的引导代码暂需要手动修改emcc编译生成的js。

  • 替换所有import.meta.urlglobalThis.bootUrl;
  • 搜索receiveInstace,将function receiveInstance(instance,module){wasmExports=instance.exports;替换为function receiveInstance(instance,module){wasmExports=instance.instance.exports;

7. 用Wechat Devtools打开PixUI.Demo.Wxmp工程即可运行

四、优势与劣势

优势

  • 代码复用:前后端可以统一开发语言,;
  • 动态加载:可以远程加载C#写的PixUI组件;

劣势

  • 包太大: 因打包了dotnet的mono运行时及skia引擎,目前不包含中文字体总的包大小差不多8.8MB,小程序首次加载根据网络情况会稍慢。

五、IOS真机问题

目前IOS真机上运行还有些问题,先在此记录。

1. WebAssembly不支持Exception Handling

WXWebAssembly加载时会报invalid wasm file错误, 暂编译不支持的版本绕过此问题。

2. JSC引擎的Function.length始终返回0

可以通过修改dotnet.runtime.js来绕过此问题, 搜索argument count mismatch for cwrap,将

if(o&&n&&o.length!==n.length&&(Pe(`argument count mismatch for cwrap ${e}`),o=void 0),"function"!=typeof o&&(o=Xe.cwrap(e,t,n,r))

替换为

if("function"!=typeof o&&(o=Xe.cwrap(e,t,n,r))

3. Jiterpreter造成微信闪退

暂通过修改dotnet.runtime.js来绕过此问题,搜索.tableSize,将

function(){if(ds)return;ds=!0;const e=ps(),t=e.tableSize,n=ot.emscriptenBuildOptions.runAOTCompilation?e.tableSize:1,

替换为

function(){return;if(ds)return;ds=!0;const e=ps(),t=e.tableSize,n=ot.emscrip
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 6:12:40

NGA论坛效率提升工具:全面优化你的浏览体验与工作流

NGA论坛效率提升工具:全面优化你的浏览体验与工作流 【免费下载链接】NGA-BBS-Script NGA论坛增强脚本,给你完全不一样的浏览体验 项目地址: https://gitcode.com/gh_mirrors/ng/NGA-BBS-Script NGA论坛增强脚本是一款专为提升NGA论坛浏览效率而设…

作者头像 李华
网站建设 2026/7/2 6:12:29

AI 电动农业机械智能功率 MOSFET 完整选型方案

随着 AI 技术在现代电动农业机械(如智能拖拉机、收割机、植保无人机)中的广泛应用(如自动驾驶路径规划、精准作业、能量优化),其电驱系统对功率 MOSFET 提出了严苛要求:高耐压、大电流、低损耗、高环境适应…

作者头像 李华
网站建设 2026/7/2 6:11:45

知识分享|软件登记测试报告主要用途,双软认定主要材料!

很多中小软件企业在申报双软认定、办理退税、项目申报时,常常因为缺少合规的软件登记测试报告导致申报失败、流程卡滞。不少企业误以为仅拥有软件著作权即可完成双软认证、税务备案,实则著作权仅能证明版权归属,而软件登记测试报告是验证软件…

作者头像 李华
网站建设 2026/7/2 6:10:13

Hack字体深度解析:专为源码优化的等宽字体最佳实践

Hack字体深度解析:专为源码优化的等宽字体最佳实践 【免费下载链接】Hack A typeface designed for source code 项目地址: https://gitcode.com/gh_mirrors/ha/Hack Hack字体是一款专为源代码编辑器设计的开源等宽字体,通过优化字符设计显著提升…

作者头像 李华
网站建设 2026/7/2 6:09:52

AI读心术:破解沉默中的命运密码

侧写时代:当AI从人类的选择性沉默中读取命运我们总以为AI理解人类靠的是数据——我们说了什么、写了什么、做了什么。但最深的秘密藏在那些我们从未表达的部分里:我们选择不说的那句话、不写的那封信、不点击的那个链接。在这个被"巨量数据"定…

作者头像 李华