把手机上的通知推到电脑的灵动岛。教程分两段:先配置电脑端(安装插件、放行防火墙、开启服务),再配置手机端(SMSForwarder 转发规则)。
前置条件
手机与电脑必须连在同一个局域网(同一台路由器 / 同一个 Wi-Fi)。 手机走移动数据、或电脑开着 VPN / 代理时,通常连不通。
一、安装插件
把 NpsPushBridge.dll 放进宿主主程序所在目录的 plugins\ 文件夹:
<NPS 安装目录>\
├─ NotchPeninsula.exe
└─ plugins\
└─ NpsPushBridge.dll放好后重启 NPS;或打开「设置窗口 → 插件中心」点重新加载。
本插件是单文件型(不引用任何第三方 dll,SkiaSharp 由主程序提供), 所以把 dll 直接丢进
plugins\根目录就是最简单的装法 —— 配置教程与更新日志都在 dll 里面,不需要另外放任何文件。若偏好子文件夹,应建
plugins\NpsPushBridge\,把NpsPushBridge.dll与随包附带的plugin.json一起放进去。注意目录型必须放在子目录里,不要把plugin.json和 dll 一起丢在plugins\根目录下。
二、确认插件已加载:状态灯
灵动岛右侧会出现一盏小圆点(状态灯):
| 颜色 | 含义 |
|---|---|
| 绿色 | 服务运行中,且此刻一切正常,手机可以推送 |
| 橙色 | 服务运行中,但最近一条消息没能送达(请求无效 400 / 转发失败 502),尚未恢复 |
| 灰色 | 服务已停止 |
左键单击这盏灯可以随时开启 / 停止服务。
橙色是「当前状态」,不是「历史记录」
只要下一条消息成功转发,灯会立刻自行变回绿色,不需要手动重启服务。 所以看到橙色就意味着「现在推送不通」,应当去查日志里最后一条失败原因。 (被白名单拒绝的 403 不算失败 —— 那只是来源没获授权,灯不会因此变橙。)
灯每次变色都会写一条插件日志(配置窗口下半部分的日志区),形如 状态灯 → 橙(有未恢复的失败,下一条成功转发的消息即回绿), 可据此核对「灯显示的颜色」与「服务的真实状态」是否一致。
怎么核对灯准不准? 用浏览器打开 http://本机局域网IP:1403/(端口按你自己的设置), 状态页里有一行 状态灯 : 绿(服务运行中) —— 它与岛上那盏灯读的是同一套判定, 两边颜色不一致才说明有问题。
⚠️ 别用
127.0.0.1打开:白名单非空时回环地址会被 403 挡掉(见「白名单」一节)。
三、放行 Windows 防火墙(关键)
首次开启服务时,Windows 会弹出「Windows 安全中心警报 / 防火墙已阻止此应用的部分功能」 ——必须勾选「专用网络」并点「允许访问」,否则手机连不上。
如果当时误点了「取消」,手动补上:
控制面板 → Windows Defender 防火墙 → 允许应用或功能通过 Windows Defender 防火墙
→ 更改设置 → 找到 NotchPeninsula.exe → 勾选「专用」→ 确定四、查询电脑的局域网 IP
在 PowerShell 或 CMD 中执行 ipconfig,找到当前联网网卡(一般是「无线局域网适配器 WLAN」 或「以太网适配器 以太网」)下的 IPv4 地址,形如 192.168.1.10。 手机端要填的就是这个地址。
ipconfig也可以在配置界面里点「+最近来源」:等手机发过一条之后,它会自动把来源 IP 填进白名单,省去手抄。
五、打开配置界面
在灵动岛的状态灯上点右键 → 展开一张配置摘要卡片(显示运行状态、端口、已转发数, 以及一个「打开完整配置」按钮)→ 点按钮打开「推送网桥配置」窗口。
为什么多这一步
宿主的规则是「右键点到的组件没有详情页,就打开它自己的设置窗口」。 状态灯如果右键直接开窗口,宿主的设置窗口也会跟着弹出来、两个窗口叠在一起。 给状态灯配一张「配置摘要」详情页后,右键就只展开这张卡片、不再弹宿主设置窗口了。 卡片上的状态区点一下也能开关服务;卡片用完再点一次右键(或点岛外)会自动收起。
界面字体会跟随宿主:插件里所有文字(配置窗口、宿主设置窗口里的插件页、岛上的提示条、 导出的教程网页)用的都是你在灵动岛设置里选的那个自定义字体。窗口顶部状态行右侧会常驻显示 当前生效的字体名(如 宿主自定义字体(REEJI-CHAO-BeiMingGBT-Flash)),方便你自己核对。
- 如果你没在宿主里设置过自定义字体,这里会显示
系统字体(Microsoft YaHei UI),属正常; - 你选的字体若缺个别字形(显示类字体常缺
▲、✓这类符号),只有画不出的那一串字 会退回系统字体,其余照你的字体显示 —— 这样界面上永远不会出现方框; - 在宿主里换了字体之后,插件最多约 1 秒就会跟上,不用重启。
窗口怎么摆
这个窗口和普通 Windows 窗口一样,可以移动、可以缩放:
| 想做什么 | 怎么做 |
|---|---|
| 移动窗口 | 按住顶部标题条(有「局域网推送网桥 · 配置」那一行)拖动 |
| 缩放窗口 | 把鼠标移到窗口的四边或四角(边缘约 6 像素内),光标会变成双箭头,拖动即可 |
| 让窗口总是在最前面 | 点标题行右侧的「置顶」按钮(默认不置顶);再点一下取消 |
| 关闭窗口 | 点右上角的圆形 ×,或按 Esc |
| 滚动列表 | 把鼠标放在白名单 / 图标映射 / 日志上滚滚轮,滚的是光标底下那一个列表 |
尺寸、位置、置顶状态都会被记住:关掉再打开,还是你摆的样子。 把窗口拉得很小是不行的 —— 缩到一定程度就停住(再小面板就要被裁坏了); 如果换了显示器(分辨率变小)或窗口被拖到了屏幕外面,下次打开时会自动把它挪回屏幕内, 但只挪越界的那一边,不会把你原来放的位置整个重置。
多块显示器、缩放比例不一样也没关系:把窗口拖到另一块屏(哪怕那块是 125% / 150% 缩放), 窗口会自动按那块屏的缩放重新渲染,不会出现「按钮看着在这、要点到旁边才有效」的错位。
把窗口拉大有什么用:变宽时每条白名单的输入框跟着变长,日志也能显示更长的行; 变高时多出来的高度全部给日志区。白名单区的高度是固定的(3 条),条目再多请用 ▲ / ▼ 滚动。
看更新日志
标题行右侧有个「更新日志」按钮。点它会在窗口里切出一个页面,直接显示本插件每个版本改了什么 (这张图就在 NpsPushBridge.dll 里面,随插件一起升级)。图会按窗口宽度自动缩放,内容高了可以滚轮滚动, 点右上角「返回」回到主界面。
六、配置端口与白名单
6.1 面板显示时长
端口下面有一行「面板显示时长(鼠标移开多久后收起)」,是一条可以拖动的滑块:
- 左端最短
0.50秒、右端最长60.00秒,右侧实时显示当前秒数(保留 2 位小数); - 刻度是对数的:
0.5~5秒这一段被拉得很开,越往右一格跨度越大(常用区间更好拖); - 点滑块上的任意位置会直接跳到那里,按住拖动则持续跟随;
- 松手即生效并记住 —— 不必点「保存配置」,也不必重启灵动岛。
它管的是右键状态灯展开的那张「配置摘要」卡片:鼠标移开后多久自动收起。
下面还有一个「忽略外部鼠标操作(不自动收起)」开关(默认关闭): 勾上之后面板永不自动收起(鼠标离开不收、点到岛外也不收),适合要腾出鼠标去别处取东西的时候 (比如复制 IP、翻日志对照)。关掉它就回到默认:鼠标一离开、约 0.9 秒后面板自动收起。
⚠️ 提醒弹窗(吐司)本身的停留时长改不了:那个时长由灵动岛本体写死为 4 秒 (宿主连「让插件传时长」的通道都没接),属于它当前的能力边界,不是本插件的毛病。
6.2 端口输入框
用途:本机监听端口(界面上就写着这一行,不用猜)。
| 项 | 说明 |
|---|---|
| 默认值 | 1403 |
| 规则 | 1-65535 的整数 |
| 怎么改 | 点一下端口输入框直接键入数字;或点 -10 / -1 / +1 / +10 微调 |
| 写错了会怎样 | 输入框变红,框内右侧写清原因(如「端口 70000 超出范围」);点「保存配置」会被拦下 |
| 提醒(黄框) | 填 1024 以下会给黄色提醒(系统保留端口,可能被占用或需要管理员权限),但不拦保存 |
⚠️ 如果改了端口,手机端必须同步改,否则手机连不上。
6.3 白名单
白名单不是一个大文本框,而是每个来源一个输入框:一行一个带边框的框,框里就是这一条地址。 这样你能一眼看出「一共允许了哪几个来源」,每条也会有各自的校验结果。
支持三种写法:
| 写法 | 含义 | 建议 |
|---|---|---|
192.168.1.23 | 只允许这一个 IP | 最严格 |
192.168.1.* | 允许整个 192.168.1.x 网段 | 最常用 |
192.168.1.0/24 | 同上,CIDR 写法 | 等价于上一行 |
另外:
| 情况 | 行为 |
|---|---|
| 框里全部留空 | 放行全部来源(界面会提示「全部留空 = 放行所有来源」)。仅建议在完全可信的家庭网络中使用 |
某一条以 # 开头 | 当注释,不写进配置(用来临时停用某条) |
| 单条长度 | 最多 120 字符 |
| 写错了 | 框变红、框内右侧写明原因,点「保存配置」会被拦下并指出是第几条 |
| 会给提醒但能保存 | 如 192.168.1.* 没以「.」结尾时会同时放行 192.168.10.x 这类地址 —— 给黄框提醒并建议改成 192.168.1.*,但不拦你(不会偷偷改写你填的内容) |
白名单是「全有全无」的门禁
只要填了规则,所有来源都必须先过白名单 —— 包括浏览器打开的状态页、以及从本机 127.0.0.1 发出的测试请求。 因此如果只填了 192.168.1.*,用 http://127.0.0.1:1403/ 自检会直接得到 403。 自检请改用电脑的局域网 IP(如 http://192.168.1.10:1403),或额外加一条 127.0.0.1。
常用按钮:
| 按钮 | 作用 |
|---|---|
+添加 | 在末尾新增一个空白输入框 |
+最近来源 | 把最近一次连接的来源 IP 加入白名单(即使那条被拒绝过,也会被记录) |
清空 | 清空白名单(清空 = 放行所有来源) |
▲ / ▼ | 上下翻页(框高固定,只显示前 3 条) |
每行右侧 × | 删除该条 |
键盘怎么用:点一下某个框选中它 —— 鼠标点在哪里,光标就落在哪里。 这些框都是真正的输入框:有会闪的光标、能改中间的字、能选中、能用剪贴板。
| 想做的事 | 怎么做 |
|---|---|
| 改中间的某个字 | 点到那个位置,或按 ← → 移光标 |
| 跳到一头一尾 | Home 到最前、End 到最后 |
| 快速跨过一整段 | Ctrl+← / Ctrl+→ 按词跳(192.168.1.23、https://…/a.png 都算一个词) |
| 选中一段 | 按住左键拖;或按住 Shift 再按方向键;双击=全选;Ctrl+A 也全选 |
| 删掉选中的部分 | 直接按 Backspace 或 Delete,也可以直接打字覆盖它 |
| 复制 / 剪切 / 粘贴 | Ctrl+C / Ctrl+X / Ctrl+V。⚠️ 没有选中任何内容时,Ctrl+C 复制的是这一格的完整内容 |
| 换到下一个框 | Tab;或按 Enter 递进 |
| 内容比框还长 | 会自动水平滚动,光标始终可见,不会跑出框外 |
⚠️ 两点说明(宿主限制,不是本插件的取舍):
- 插件窗口只能收到「按了哪个字符」,方向键 / Home / End / Delete 不产生字符。 这几键是靠只读地读取键盘状态补上的(每 33 毫秒一次,且只在你点进某个输入框之后才跑)。 万一在你的环境里读不到,表现只是「方向键没反应」——点鼠标落光标、拖选、剪贴板都不受影响。
- 宿主设置窗口里的那一页拿不到键盘事件,那一页只能用鼠标。 所以
+添加 / +最近来源 / 清空 / ▲▼这些按钮一直保留着:只用鼠标也能把配置改完。
七、保存并开启服务
- 点「保存配置」——有未保存修改时按钮会显示
保存配置 *; - 点「开启服务」——服务已在运行时该按钮显示「停止服务」。
端口与白名单都会写入注册表(HKCU\SOFTWARE\NotchPeninsula),下次启动 NPS 自动沿用。
保存时会先校验:端口或任何一条白名单写错,都会拒绝保存、指出是第几条、错在哪, 并把光标移到那条上(框变红、原因写在框内右侧)。
为什么「故意不让你保存」
旧版本遇到认不出的地址是「静默丢弃」—— 界面提示保存成功、那条规则却从未生效,你根本无从知道。 现在改成「先改对,再保存」。
保存成功了怎么确认真的生效:看配置窗口顶部的状态摘要行(端口 … · 已转发 … · 最近来源 …), 以及日志区里的一行 服务已启动:监听 0.0.0.0:<端口>,白名单 N 条规则。改了端口会自动重启监听。
八、更新检查与提示条
插件会自动检查更新:启动 20 秒后一次,之后每 6 小时一次。 发现新版本时先弹一条通知「推送网桥有新版本 vX.X.X」,通知消失后灵动岛右侧会出现一条 可点击的提示条(↑ 有新版本 vX.X.X)。
配置窗口「更新」区块有五行,可以按自己的习惯设定:
更新 已是最新(v1.5.0) [检查][复制信息][打开下载页]
灵动岛提示:岛上有可点击的提示条 [不提示][只显示][可点击]
点击提示条后: [打开下载页][复制到剪贴板][下载更新包]
一键静默升级:已关闭(开着自动帮你下好装好) [开启][关闭]
升级状态:已关闭 · 未安装更新:开启开关后会自动检查并安装| 设置 | 选项 | 说明 |
|---|---|---|
| 灵动岛提示 | 不提示 | 岛上不出现提示条,只在配置窗口里显示有新版本 |
只显示 | 岛上出现提示条,但点它不做任何事(纯告知,防误触) | |
可点击 | 岛上出现提示条,点它执行下面选定的动作(默认) | |
| 点击提示条后 | 打开下载页 | 浏览器打开插件市场页(默认,最稳) |
复制到剪贴板 | 把版本号与下载地址复制下来,方便贴到别的设备去下 | |
下载更新包 | 直接打开安装包下载地址(单个 dll 文件或 zip 包) | |
| 一键静默升级 | 已关闭(默认) | 只检查并提示,装不装由你自己决定 |
已开启 | 自动下载并安装新版本,装好后停在「待重载」 |
三个选择都会记住,插件重载后仍然沿用。同一版本只提示一次,点过之后就不再打扰; 市场出现更高的版本会重新提示。想再看到提示,在配置窗口点一下「检查」即可。
8.1 一键静默升级(默认关闭)
打开后会发生什么:插件在每次自动检查发现新版本时,会自己把新版本下载下来, 确认「这确实是推送网桥、且版本确实更高」之后,备份旧文件并替换掉插件 dll,然后把状态改成 待重载。
| 你可能看到的升级状态 | 含义 |
|---|---|
正在检查更新… | 正在访问市场 |
正在下载 v1.5.0 … 42%(1.2 MB / 2.9 MB) | 正在下载,带实时百分比 |
正在校验安装包… | 在检查下载到的东西是不是本插件、版本是不是更高 |
正在安装 v1.5.0 … | 备份 + 替换 dll(配置教程与更新日志已内嵌在 dll 里,随 dll 一起更新) |
新版本 v1.5.0 已就位,到插件中心点「重载」即刻生效 | 装完了,只剩最后一步 |
升级失败:…(1 分钟后重试) | 会自动重试,最多 3 次(1 分钟 → 5 分钟 → 15 分钟) |
升级失败:…(已回退到当前版本…) | 重试用完了,旧版本完好,可以稍后手动升级 |
为什么最后要你点一下「重载」
宿主没有给插件提供「重新加载我自己」的接口,所以插件只能把新文件放好、不能让自己立刻换成新代码。 这是故意保留的一步 —— 悄悄换掉正在运行的插件代码、而你完全不知道,比少点一次鼠标危险得多。
这是唯一会自动改写你磁盘上文件的功能
所以它默认是关的。关着的时候插件只做「检查 + 提示」,绝不下载、绝不替换、绝不动你的文件。 不想用了随时在这个开关上点「关闭」,已经下载好的新版本不会自动装上。
升级失败不用担心变砖:替换前会先把当前 dll 完整备份一份。 只有在「替换进行到一半」失败时才会回退,回退会把备份盖回来; 下载失败、校验失败这类情况根本没碰过你的文件,无需回退。
九、自检(不依赖手机)
⚠️ 用局域网 IP 自检:白名单非空时,
127.0.0.1通常不在名单内、会被判为「不在白名单内」。 下面一律用电脑的局域网 IP(把示例里的192.168.1.10换成你自己的)。 若白名单留空,则用127.0.0.1也可以。
状态页:浏览器打开 http://192.168.1.10:1403/,能看到状态信息即说明服务正常:
NpsPushBridge — 局域网推送网桥
状态 : 运行中
监听端口: 1403
白名单 : 2 条规则
已接收 : 0 已转发: 0 已拒绝: 0 失败: 0本地发一条测试(在 PowerShell 里执行,成功后灵动岛顶部会弹出提示):
$body = '{"kind":"电脑测试","title":"测试标题","subtitle":"看到这条说明链路已通"}'
Invoke-RestMethod -Method Post -Uri "http://192.168.1.10:1403/" `
-ContentType "application/json; charset=utf-8" `
-Body ([Text.Encoding]::UTF8.GetBytes($body))返回 ok 即为成功;同时状态页的「已接收 / 已转发」会各加 1。
日志区:配置窗口底部的日志实时记录每一条连接与转发结果,超长行自动折行, 可用 ^ / v 翻页,复制日志 一键复制全文。这几条日志的含义:
| 日志 | 含义 |
|---|---|
服务已启动:监听 0.0.0.0:1403,白名单 2 条规则 | 服务正常启动(空白名单时显示「未配置(放行全部来源)」) |
来自 192.168.1.23 → [微信] 标题 — 正文 | 收到并成功转发到灵动岛 |
拒绝 192.168.1.23:不在白名单内 | 来源未获授权 |
请求无效(来自 …):… | 请求体既不是 JSON 也不是表单(灯会转橙) |
转发失败:… | 插件连不上 NPS 的本地接口(127.0.0.1:47300)(灯会转橙) |
状态灯 → 绿 / 橙 / 灰(…) | 灯的颜色发生了变化(只在变色时记一条,不会刷屏) |
已显示更新提示条:有新版本 v…(…) | 岛上出现了更新提示条 |
十、图标映射(可选)
手机推送过来的消息,灵动岛会显示一个小图标。没配过也能用 —— 插件内置了常用应用 (微信 / QQ / 快手 / 抖音 / B站 / 网易云 / 浏览器 / 播放器…)的图标,按消息里的应用名自动匹配。
想给别的应用补图标,就在配置界面点「图标映射」,进入一页编辑器。 每一条映射是两个输入框:左边填应用名,右边填图标值。
| 输入框 | 用途(界面上就写着) | 规则 |
|---|---|---|
| 应用名(左框) | 消息里的应用名(或包名) | 与推送消息里的应用名一致即可;大小写、空格、(3条新消息) 这类计数尾巴都会被自动忽略。最多 64 字符 |
| 图标值(右框) | 要显示的图标 | 四种写法见下表。最多 400 字符 |
图标值支持四种写法:
| 写法 | 例子 | 说明 |
|---|---|---|
| 内置别名 | qq | 最省事,零联网 |
| 图片链接 | https://…/zhihu.png | 插件会去下载(宿主限 3 秒、单张 4 MB) |
| base64 | data:image/png;base64,… | 把图片直接塞进配置 |
| 本地文件 | C:/pics/zhihu.png | 必须用正斜杠 /,不能用反斜杠(写成 \ 会被判错并说明原因) |
会拦下保存的写法:只填了应用名却没填图标值(或反过来)—— 这正是旧版会被静默丢弃的情况, 现在会明确告诉你「缺的是哪一半」。另外反斜杠路径、data: 后面少了 base64,、超出长度上限,也都会拦下。
只提醒不拦的写法:填了一个没收录的别名(如 zhihu)—— 宿主找不到对应图片时会回退成预设图标, 看着像「配了却没生效」,所以给黄色提醒,但允许你保存。
复制粘贴(快捷搬家)
配过一条之后,想再加一条类似的,不必手打:
- 点一下要复制的那一行(把它选中);
- 点工具行的「复制」—— 标题旁出现「已复制 ✓」;
- 点要插入位置的上一行,点「粘贴」;
- 新行会插在你选中那一行的下方,接着改应用名和图标值即可。
若粘进来的应用名已经存在(例如已经有了「微信」),插件不会直接覆盖: 第一次点「粘贴」只是提醒(标题旁显示「1 条冲突 · 再点「确认粘贴」继续」), 这时按钮已经变成「确认粘贴」,再点一次才真正覆盖。 不想覆盖就别点第二次,改个名字再粘即可。
另外几点:
- 一次粘多行也行(可从记事本整段粘过来);其中写得不对的行会被跳过,插件会告诉你跳过了几行;
- 复制的是整行原文,所以也可以粘到记事本里改完再粘回来;
- 页面下半部分的「内置映射」是只读的对照表,不参与复制粘贴;
- 改完记得点「保存映射」,否则不会生效。
十一、电脑端常见问题
| 现象 | 处理 |
|---|---|
| 手机提示连接失败 / 超时 | ① 确认状态灯是绿色(服务运行中);② 确认防火墙已放行;③ 确认手机与电脑在同一网段且能 ping 通 |
| 日志出现「拒绝 x.x.x.x:不在白名单内」 | 该 IP 未获授权。点「+最近来源」再点「保存配置」即可 |
状态页返回 403 ip_not_allowed | 自检用的地址不在白名单里(127.0.0.1 最常见)。改用局域网 IP,或加一行 127.0.0.1 |
| 日志完全没有新记录 | 请求根本没到达电脑:检查端口是否写对、IP 是否写对、是否被防火墙拦截 |
| 端口被占用,服务起不来 | 换一个端口(如 1404),保存后手机端同步修改 |
| 想临时允许所有设备 | 清空白名单(留空 = 放行全部),或加上整段 192.168.1.* |
| 输入框变红了、点保存还提示「保存失败」 | 设计如此:那条内容写错了,故意不让你保存。框内右侧与日志里都写了原因,照它改对再保存 |
| 想改地址中间的某个字 | 鼠标点在要改的位置即可(光标会落在那里) |
按 ← → / Home / End / Delete 没反应 | 先用鼠标点一下那个框(边框变蓝=已聚焦)。若仍无效,用鼠标点落光标一样能改;Ctrl+C/X/V 与拖选不受影响 |
| 窗口拉不动 / 缩不了 | 拖动要按在顶部标题条上;缩放要把鼠标放到紧贴边缘约 6 像素处 |
| 窗口跑到屏幕外面了 / 换了显示器后找不到窗口 | 重新打开时会自动把它挪回屏幕内(只挪越界的那一边) |
| 想让窗口一直显示在最前面 | 点标题行右侧的「置顶」按钮(默认不置顶)。这个选择会被记住 |
| 想选中一整条地址 | 双击这个框即全选,或按住左键拖过去;Ctrl+A 也可 |
| 点了另一个框,结果原来那个框的内容跑到新框里了 | 这是很严重的现象,请连同版本号反馈。正常情况不会发生 |
| 开了配置窗口,但键盘打字没反应 | 先用鼠标点一下要输入的那个框(边框变蓝=已聚焦),再打字 |
| 界面字体和宿主设置里的不一样 / 看着是系统字体 | 看窗口顶部状态行右侧的「当前字体」:显示 系统字体(…) 说明宿主里没设自定义字体,插件只能回退 |
| 状态灯一直是橙色 | 表示最近一条消息没有送达。看日志里最后一条「请求无效」/「转发失败」的原因;随手再发一条能成功的消息,灯会自己回绿 |
| 状态灯不见了 | 通知弹窗、剪贴板链接面板、媒体控制面板展开期间,宿主会把插件行整块让给它们,收起后灯会自动回来(宿主既定行为) |
| 提示「有新版本」后,点那一下没反应 | 旧版本用的是宿主通知弹窗上的点击回调,而宿主不读这个回调。装当前版本即可:新版的可点击提示条由插件自己画在岛体右侧 |
| 岛右边多了一条「↑ 有新版本」 | 这是更新提示条,正常现象。点它会打开插件市场页(或按你在配置里的选择执行) |
| 图标映射里点了「复制」没反应 | 先点一下要复制的那一行再点「复制」;两个框都空的行不会被复制 |
| 粘贴时一直停在「1 条冲突 · 再点「确认粘贴」继续」 | 这是故意的设计:说明剪贴板里的应用名你在下面已经有了。想覆盖就再点一次;不想覆盖就别点,改个名再粘 |
| 加了一行图标映射但不生效 | ① 确认点过「保存映射」;② 应用名要与消息里的名字对得上;③ 图标值写本地路径时必须用正斜杠 / |
| 开了「一键静默升级」,装完怎么还是旧版本 | 升级装好后状态会显示「已就位,到插件中心点「重载」即刻生效」。必须再点一下重载 |
| 「一键静默升级」显示「升级失败」 | 看括号里的说明:写 (N 分钟后重试) 说明它会自己重试;写 (已回退到当前版本…) 说明重试用完了,旧版本完好无损 |
| 担心自动升级把插件弄坏 | 升级只在开关开启时才动作,且会先把当前 dll 完整备份再替换;默认是关闭的 |
十二、手机端配置(SMSForwarder)
12.1 安装 SMSForwarder
从 SMSForwarder 的 Releases 下载并安装。
12.2 通用设置
- 打开「转发应用通知」,并选择自动消除通知选项;
- 打开「启动时异步获取已安装 App 列表」,选择用户应用;
- 打开「开机启动」「忽略电池优化」「在最近列表中隐藏」「启用 Cactus 增强保活措施」(会增加耗电), 并可以选择后台播放无声音乐;
- 其他的按需打开。
12.3 发送通道
- 点右上角加号,添加 Webhook 通道类型;
- 请求方式选择 POST;
- 在 Webhook Server 里填
http://<电脑IP>:<端口(默认为1403)>/; - 设置一个通道名称并点击保存。
12.4 转发规则
- 点右上角加号添加转发规则;
- 点「发送通道」右边的倒三角,选择刚刚添加的发送通道;
- 打开「启用自定义模板」,在下面的输入框中复制以下 JSON:
{"title": "{{TITLE}}", "subtitle": "{{MSG}}", "kind": "{{APP_NAME}}"}以上 JSON 内容均不可修改
这三个字段就是插件接收的请求体结构,改了就解析不出来。
配置完点击保存,手机端就完成了。
12.5 模板字段说明(仅供理解,无需修改)
| 字段 | 取值 | 在灵动岛上的位置 |
|---|---|---|
kind | 应用名 | 灵动岛顶部显示的应用名 |
title | 通知标题 | 主标题 |
subtitle | 通知正文 | 正文内容 |
插件同样兼容表单格式(部分转发 App 默认发这种):from=<应用包名>&content=<正文>, 会自动做百分号解码(%7B%22 → {"、+ → 空格)。两种格式会自动识别,无需手动切换。
应用名以
content里的kind为准:表单里的from是包名(如com.smile.gifmaker), 而contentJSON 里的kind(即模板里的)才是要显示的中文名(如「快手」)。 两者都存在时,插件优先用content里的kind。 只有content里没给kind时,才回退到from包名(已知包名会翻译成中文,如com.tencent.mobileqq→
正文是多行的也没问题:通知正文里带换行(包括空行)时,模板拼出的那段 JSON 严格来说已经是不合法的 —— 插件会自动修复再解析,标题 / 应用名 / 正文都能正常取到。 换行在灵动岛上会折叠成一个空格(岛上是单行显示);正文里的双引号、反斜杠也能正确显示。
12.6 服务端响应约定
| 响应 | 含义 |
|---|---|
HTTP 200 + {"ok":true} | 成功 |
403 ip_not_allowed | 来源不在白名单 |
400 bad_request | 请求体非法 |
502 forward_failed | 转发到灵动岛失败 |