2.2 版本代码使用示例
<火山程序 类型 = "通常" 版本 = 1 />
包 火山.程序
类 启动类 <公开 基础类 = 程序类>
{
变量 Jade <类型 = JadeView>
方法 启动方法 <公开 类型 = 整数>
{
Jade.订阅事件 (订阅_视图事件.请求新窗口)
如果 (Jade.初始化 (真, "C:\\Users\\35037\\Desktop\\JadeJapk\\11.log", "", "JadeView火山示例", "com.jadeview.demo", 真) == 假)
{
返回 (0)
}
Jade.置IPC频道回调 (本对象, "ipcChannelMessageCallback")// IPC频道消息 此为非静态回调方式
Jade.注册IPC通道 ("setTheme")
Jade.注册IPC通道 ("setBackdrop")
Jade.注册IPC通道 ("message")
Jade.运行消息循环 ()
返回 (1)
}
方法 IPC频道消息 <公开 类型 = 文本型 注释 = "供 置IPC频道回调 匹配对象方法签名使用。返回空文本表示不回传;返回非空文本时桥接层会自动调用 jade_text_create。" @强制输出 = 真
@输出名 = "ipcChannelMessageCallback">
参数 通道名 <类型 = 文本型>
参数 窗口ID <类型 = 整数>
参数 数据 <类型 = 文本型>
{
调试输出 (取源方法名 (), 通道名, 窗口ID, 数据)
如果 (通道名 == "setBackdrop")
{
如果真 (Jade.系统.是否为Win11 ())
{
Jade.窗口.置材质 (窗口ID, 数据)
}
}
如果 (通道名 == "setTheme")
{
Jade.窗口.置主题 (窗口ID, 数据)
}
如果 (通道名 == "message")
{
Jade.窗口.置任务栏闪烁 (窗口ID, 10)
返回 ("宿主端已收到消息:" + 数据)
}
返回 ("")
}
方法 JadeView_应用就绪 <接收事件 类型 = 整数 注释 = "初始化阶段事件。默认会在 初始化() 内自动订阅。成功时数据通常为 success;失败时为错误文本或 JSON。返回值忽略。">
参数 来源对象 <类型 = JadeView 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 窗口ID <类型 = 整数>
参数 数据 <类型 = 文本型>
{
如果 (来源对象 == Jade)
{
变量 窗口选项 <类型 = JadeWindowOptions>
变量 视图选项 <类型 = JadeViewOptions>
窗口选项.标题 = "Titlebar Overlay Demo"
窗口选项.左边 = -1
窗口选项.顶边 = -1
窗口选项.宽度 = 920
窗口选项.高度 = 625
窗口选项.可调整大小 = 真
窗口选项.初始隐藏 = 假
窗口选项.使用页面图标 = 真
窗口选项.允许最小化 = 真
窗口选项.允许最大化 = 真
窗口选项.透明窗口 = 真
窗口选项.边框风格 = 窗口边框样式.标题覆盖
窗口选项.主题 = 窗口主题.跟随系统
窗口选项.背景颜色 = "#f3f3f3"
窗口选项.内容保护 = 假
视图选项.允许全屏 = 真
视图选项.后台节流 = 真
视图选项.自动播放 = 真
视图选项.PostMessage白名单 = ""
变量 本地资源地址 <类型 = 文本型>
本地资源地址 = Jade.置协议服务目录 ("web")
调试输出 (本地资源地址)
变量 主窗口ID <类型 = 整数>
主窗口ID = Jade.创建窗口 (本地资源地址, 0, 窗口选项, 视图选项)
如果 (主窗口ID > 0)
{
如果真 (Jade.系统.是否为Win11 ())
{
Jade.窗口.置材质 (窗口ID, 窗口材质.云母)
}
}
}
返回 (0)
}
方法 JadeView_全部窗口已关闭 <接收事件 类型 = 整数 注释 = "全部窗口都关闭后触发。返回值忽略。">
参数 来源对象 <类型 = JadeView 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 窗口ID <类型 = 整数>
{
如果 (来源对象 == Jade)
{
Jade.退出程序 ()
}
返回 (0)
}
方法 JadeView_请求新窗口 <接收事件 类型 = 整数 注释 = "可拦截事件。返回 1 表示拦截,返回 0 表示放行。">
参数 来源对象 <类型 = JadeView 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 窗口ID <类型 = 整数>
参数 地址 <类型 = 文本型>
{
如果 (来源对象 == Jade)
{
打开指定网址 (地址, )
返回 (1)
}
返回 (0)
}
方法 JadeView_主题改变 <接收事件 类型 = 整数 注释 = "系统或窗口主题变化时触发。返回值忽略。">
参数 来源对象 <类型 = JadeView 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 窗口ID <类型 = 整数>
{
如果 (来源对象 == Jade)
{
变量 按钮颜色 <类型 = 文本型>
变量 背景色 <类型 = 文本型>
如果 (Jade.窗口.取主题 (窗口ID) == 1)
{
按钮颜色 = "#ffffff"
背景色 = "#ffffff14"
}
否则
{
按钮颜色 = "#000000"
背景色 = "#0000000d"
}
Jade.窗口.置标题栏覆盖层样式 (窗口ID, 32, 按钮颜色, 背景色)
}
返回 (0)
}
方法 JadeView_窗口已创建 <接收事件 类型 = 整数 注释 = "窗口创建完成后触发。返回值忽略。">
参数 来源对象 <类型 = JadeView 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 窗口ID <类型 = 整数>
{
如果 (来源对象 == Jade)
{
JadeView_主题改变 (来源对象, 0, 窗口ID)
}
返回 (0)
}
}