Surge iOS Build 2009 加入了一项实验性功能,允许用户自定义一个或多个信息面板,用于显示相关的信息。
该功能需要功能订阅到期日在 2021 年 9 月 22 日以后,当订阅已过期但配置中有相应配置段时,面板不会显示,但不影响其他功能正常使用。
配置如下
[Panel]
PanelA = title="Panel Title",content="Panel Content\nSecondLine",style=info
其中 style 参数可选值有 good, info, alert, error。对应样式如下。
PanelA 为该信息面板的名字,该参数在脚本模式下将传递给脚本。
静态模式
上述配置产生的面板为静态内容,可配合托管配置或企业版配置使用,在更新配置时同步更新面板内容,向最终用户提供操作指引。
动态模式
可通过脚本控制面板内容。
[Panel]
PanelB = title="Panel Title",content="Panel Content\nSecondLine",style=info,script-name=panel
[Script]
panel = script-path=panel.js,type=generic
这个版本同时引入了 generic 类型脚本,该类型脚本为泛用类型,可被多种功能所调用。
当用户点击刷新按钮时,脚本将被唤起,传入参数为
$input : {
purpose: "panel",
position: "policy-selection",
panelName: "PanelB"
}
脚本应在 $done() 中返回 title、content 和 style 字段。
在脚本被第一次运行前,面板内容为定义行中的静态内容,运行后 Surge 会自动缓存上一次脚本的返回结果,并在执行刷新前始终显示上一次的脚本结果。
脚本样例:
$httpClient.get("https://api.my-ip.io/ip", function(error, response, data){
$done({
title: "External IP Address",
content: data,
});
});
更多自定义
- 当不传入 style 字段时,卡片将不显示图标,仅显示文字
- 当不传入 style 字段时,可传入 icon 字段,自定义图标,内容为任意有效的 SF Symbol Name,如 bolt.horizontal.circle.fill
- 当使用 icon 字段时,可传入 icon-color 字段控制图标颜色,字段内容为颜色的 HEX 编码。
旧版本兼容性
可配合配置版本标记使用,参见:https://manual.nssurge.com/release-note/profile-version.html