跳到主要内容

修改XBoard与Karing实现互通

物料

方案A 通过咒语绑定karing

视频案例

  • 咒语: xboard
  • 机场连接页: http://xboard.local/karing-connect.html
  • 演示:

思路

  • 先叠个甲: 本人对xboard/v2board不熟悉, 非前端, 仅按个人思路做的案例.
    • 如果有更好的方法, 麻烦不吝啬赐教, 提交connect issue 或联系本人@elon
  • 首先,karing APP进入一个中间页 karing-connect.html
    • 设置cookie karing=connect 作为karing连接入口的标记
    • 跳转至 /#/login
  • 然后, 进入Xboard前台页面, 载入自定义js文件 custom.js
    • 1 判断是否正在karing webview容器中, 并且存在cookie标记
    • 2 判断当前用户是否登录
    • 3 载入对接js文件 karing.js
    • 4 调用后台api /api/v1/user/getSubscribe 获取用户信息和订阅链接
    • 5 调用 _karing 方法导入用户信息
  • 最后, Karing APP 接到信息, 验证并完成机场绑定.

前置 Xboard的配置

  • 本地案例使用推荐的 docker-compose 安装: Docker Compose 纯命令行快速部署
    • version: 0.1.1-dev
    • image: ghcr.io/cedar2025/xboard:latest
  • Xboard运行于webman
  • 容器共享目录 .docker/.data:/var/www/.docker/.data

第一步 Xboard 系统

1.1 添加新文件

1.2 custom.js生效

  • 默认Xboard主题主题不判断载入 custom.js, 这里提供两种方法载入.
方法1 修改dashboard.blade.php
/www/public/theme/Xboard/dashboard.blade.php
... ...

@if (request()->cookie('karing') === 'connect')
@if (file_exists(public_path("/theme/{$theme}/assets/custom.js")))
<script src="/theme/{{$theme}}/assets/custom.js?v={{$version}}"></script>
@endif
@endif
</body>

... ...

方法2 管理员后台修改主题配置
  • 登录Xboard管理员后台

  • 主题设置 - Xboard - 主题设置 - 自定义页脚HTML

  • custom.js的 script标签代码块填入其中即可

  • tip: 本案采用第一种方法, 虽然有代码修改, 优点在于没走绑定karing流程时, 并不载入js

1.3 custom.js 说明

  • custom会载入一个远程文件 karing.min.js
  • 文件中参数 debug 默认false, 设置为true时:
    • 终端打印日志
    • 不判断 window.karing 对象是否存在, 直接模拟走一遍流程
      • 最终会报错: 导入配置失败.

第二步 harry.karing.app 后台

方法1 快捷设置咒语

  • 进入harry后台, 机场列表, 点击设置咒语按钮.
    • button
  • 设置咒语和连接url
    • setting

方法2 修改配置文件 base.json

  • connect 字段
  • 咒语 spells 字段, 推荐使用机场名称.
{
"pid": 123456,
...

"connet": "https://your-domain/karing-connect.html",
"spells": [
'急速云',
'RapidNetwork',
],
...
}

最后 测试绑定

  • Karing APP -> 设置 -> ISP/机场绑定 -> 填入咒语 -> 登录Xboard -> 完成绑定