当前位置: 首页 > news >正文

uni-app项目支付宝端Input不受控

傩遮谂饺一、运行效果

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

1. Android真机运行

2. 模拟器运行

二、实现原理

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

三、开发步骤

1. 创建wasmconsole项目

创建项目前请确认已经通过dotnet workload install安装wasm-experimental及wasm-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.url为globalThis.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.emscriptenBuildOptions.runAOTCompilation?e.tableSize:1,

4. 报compiling function underran the stack错误,暂无解。请哪位熟悉WebAssembly的大神指点一下。

http://www.jsqmd.com/news/434236/

相关文章:

  • Rust/C/C++ 混合构建 - Buck构建工具一探究竟
  • 鸿蒙应用开发从入门到实战(五):ArkUI概述
  • 2026年3月进口艺术涂料品牌推荐,品牌资质与施工售后深度解读 - 品牌鉴赏师
  • 微信小程序端智能项目工程化实践
  • 起恶意请求。 原理详解 用户登录了 B 网站,B 网站在浏览器里设置了会话 Cookie。 用户在未退出登录的情况下访问了攻击者控制 ...
  • “你还活着吗?” “我没死,只是网卡了!”——来自分布式世界的“生死契约”
  • 2026年口碑好的全自动吨袋拆包机/粉料吨袋拆包机高口碑品牌推荐 - 品牌宣传支持者
  • AI元人文:岐金兰的局限性
  • 2026长期合作的泳池马赛克厂家怎么选 - 品牌排行榜
  • 【光照】Unity中的[光照模型]概念辨析
  • 记一次 .NET 某CRM物流行业管理系统 崩溃分析
  • 2026对标英特格(Entergris)的国产过滤器品牌推荐 - 品牌排行榜
  • va, Go, Rust, Python, Haskell等语言项目的构建。 主要特性 Buck 的执行速度是Buck的两倍,核心逻 ...
  • 能够动态推断与生成DTO是Node生态的一个重要里程碑
  • C#/.NET/.NET Core技术前沿周刊 | 第 期(年.-.)
  • 2026专业的汽车循环水处理厂家推荐 - 品牌排行榜
  • ks控制器resyncPeriod机制定时把ks apiserver内存和cpu打得很高
  • 2026旅行社定制旅游哪家服务好?真实体验分享 - 品牌排行榜
  • 2026专用泳池砖生产厂家推荐:聚焦品质与设计的行业精选 - 品牌排行榜
  • 2026年3月儿童成长奶粉品牌推荐,产能配方安全三维数据透视 - 品牌鉴赏师
  • 如何利用国产动环数据库提升数据中心运维效率?
  • AI 应用开发,不就是调个接口么?
  • 2026北京旅行社哪家靠谱?综合实力与服务口碑推荐 - 品牌排行榜
  • 工程用马赛克瓷砖一般选哪家厂家(2026年实力厂商参考) - 品牌排行榜
  • 2026防滑泳池砖生产厂家有哪些?行业实力企业盘点 - 品牌排行榜
  • 2026国内游旅行社哪家有优惠活动?最新活动指南 - 品牌排行榜
  • Vs2022 社区版创建WEBSERVICE项目
  • 2026泳池用马赛克瓷砖,一般选哪几个品牌推荐 - 品牌排行榜
  • 2026年评价高的小袋拆包机/全自动拆包机采购指南厂家怎么选 - 品牌宣传支持者
  • 2026旅行社亲子游线路规划哪家比较合理?家长实用参考 - 品牌排行榜