bramblex / niva

一个基于 Tauri WRY 跨端 Webview 库的超轻量极易用的跨端应用开发框架。
https://bramblex.github.io/niva/
MIT License
644 stars 35 forks source link

当调用Niva的API次数大于255次时,所有API均报错(NivaDevTools也可复现) #104

Open HugStars opened 1 year ago

HugStars commented 1 year ago

在NivaDevTools中差不多每个按钮都调用了Niva的api,比如点击标题栏256次之后(标题栏调用了dragWindow方法),控制台报错: [Event] ipc.callback {ipc.error: 'invalid value: integer256, expected u8 at line 1 column 4'} 此时,所有调用Niva的api均失效,F5刷新后才会恢复。 20231128172942

所有涉及到Niva下api的方法的都有 id: Option这个入参,u8长度8比特,应该和此有关。 20231128173044

maxzhou0 commented 10 months ago

发现了同样的问题,反复调用Niva.api.fs.exists,会卡在固定的地方不返回了。

HugStars commented 10 months ago

有个折中的方法 : Niva.addEventListener("*", (event, data) =>{ })

event里的id应该就是调用次数,当检测到次数过大时(比如到了220次),用代码重启一下软件 (手动按下F5可以,但代码实现的刷新不可以)

ghost commented 8 months ago

你好,怎么加载"Niva"这个符号?可以教教老弟吗🙇

HugStars commented 8 months ago

@shoux0272 直接在代码里写就可以,用NivaDevtools启动项目会自动载入Niva,就在window下

另外如果想在浏览器页面打开的时候控制台不报错,可以引入下面的文件(删掉.txt后缀),用来关闭Niva相关的报错信息

niva.js.txt

Jingjiasheng commented 2 months ago

niva.exe.txt 我自己编译了一个事件id类型为u64的版本,可以先用超过255不会报错,删掉.txt后缀即可