发布 sciterEx 扩展库, 增加一种定义本机函数的方法

By terrorist at 2022-05-31 • 0人收藏 • 299人看过

1 修复使用 script / external 接口定义本机函数后无法触发 gc  

2 修复调用 wb.fireEvent  发布全局事件(本扩展库已改为 wb.publish )可能出现崩溃问题

3 增加一种定义本机函数的方法


扩展库源码

http://https://github.com/btx638/aaz-aardio/tree/master/aaz/sciterEx


使用:

import win.ui;
/*DSG{{*/
var winform = win.form(text="external 接口";right=1014;bottom=523)
winform.add()
/*}}*/

import aaz.sciterEx;  
import web.sciter.debug

var wb = aaz.sciterEx( winform ); 
wb.attachEventHandler(web.sciter.debug)
 
// 定义本机函数, 可以在 sciter 脚本里面调用
wb.defineNativeFuntion("add",function(a, b, onEnd){
	onEnd(true, "我是回调函数的参数")
	return a+b; 
})

// 定义本机函数,如果要返回多个值,由于 js 不支持多返回值,那么装在数组里
wb.defineNativeFuntion("add2",function(a, b){
	return {a;b}; 
})

wb.html = /**
<body> 
<button id="my-button">调用本机 add 函数</button> 
<button id="my-button2">多返回值</button> 
<script>

var button = document.getElementById("my-button");
button.addEventListener('click', () => { 
    let ret = Window.this.xcall("add",2, 1, (ok, ret)=>{
        console.log("本机调用完毕时的回调函数",ok, ret)
    } )
    console.log( "本机函数返回值" ,ret)
})

var button = document.getElementById("my-button2");
button.addEventListener('click', () => { 
    let [a,b] = Window.this.xcall("add2",2, 1)
    console.log( "本机函数返回值" ,a,b)
})

document.onGlobalEvent("全局事件",(evt)=>{
	console.log("受到来自本机发布的全局事件", evt.data)
})

</script>
</body>
**/

// 3秒后发布全局事件
winform.setTimeout( function(){
	wb.publish("全局事件", "全局事件的附加数据")	
}, 3000)


// 关闭程序会触发
table.gc(self, function(){
	win.msgbox("GC")	
})


winform.show();	
win.loopMessage();


登录后方可回帖

登 录
信息栏
公告:
个人博客
专注分享
可在分享中适当提问
谢绝纯提问
否则不再提醒一律
删帖
谢谢合作!



本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
Loading...