feat(oss-browser-link): 实现一键注册+自动定位补丁功能

1. 新增oss-browser自动定位包装层脚本与注册批处理
2. 优化粘贴行为:焦点在输入框时交给浏览器默认粘贴
3. 新增一批调试与构建辅助脚本
4. 更新oss-browser下载页说明与步骤
This commit is contained in:
yangxiangyuan
2026-08-12 13:29:11 +08:00
parent b21ef2ea3e
commit 4016636153
12 changed files with 583 additions and 10 deletions
@@ -0,0 +1,81 @@
// 构建 register_ossbrowser_launch.bat:模板 + 包装层 base64 块
// 源:public/tools/oss_browser_link/assets/ossbrowser_wrapper_main.js
// 产物:public/tools/oss_browser_link/assets/register_ossbrowser_launch.bat(CRLF)
const fs = require('fs')
const path = require('path')
const ROOT = path.join(__dirname, '..', '..')
const SRC = path.join(ROOT, 'public', 'tools', 'oss_browser_link', 'assets', 'ossbrowser_wrapper_main.js')
const OUT = path.join(ROOT, 'public', 'tools', 'oss_browser_link', 'assets', 'register_ossbrowser_launch.bat')
const b = fs.readFileSync(SRC).toString('base64')
const echoLines = []
for (let i = 0; i < b.length; i += 96) {
echoLines.push(`echo ${b.slice(i, i + 96)}>> "%~dp0_wrapper.b64"`)
}
const head = `@echo off
chcp 65001 >nul
setlocal
rem ==========================================
rem oss-browser 一键注册脚本(协议拉起 + 启动自动定位补丁)
rem 用法:把本文件放到与 oss-browser.exe 同一目录,双击运行
rem 作用:
rem 1. 在当前用户注册表(HKCU)注册 ossbrowser:// 协议,无需管理员权限
rem 2. 安装 resources\\app 包装层:启动时自动把默认 OSS 路径填进地址栏并定位(含正确 region)
rem 3. 生成 trae_default_oss_path.txt(第1行 oss 路径,第2行可选 region)
rem 卸载补丁:删除 resources\\app 目录与 trae_default_oss_path.txt 即恢复原版
rem ==========================================
set "EXE=%~dp0oss-browser.exe"
if not exist "%EXE%" (
echo.
echo [错误] 未在当前目录找到 oss-browser.exe
echo 请把本脚本放入解压后的 oss-browser-win32-x64 文件夹内(与 oss-browser.exe 同级)再运行。
echo.
pause
exit /b 1
)
reg add "HKCU\\Software\\Classes\\ossbrowser" /ve /d "URL:ossbrowser Protocol" /f >nul
reg add "HKCU\\Software\\Classes\\ossbrowser" /v "URL Protocol" /t REG_SZ /d "" /f >nul
reg add "HKCU\\Software\\Classes\\ossbrowser\\shell\\open\\command" /ve /d "\\"%EXE%\\" \\"%%1\\"" /f >nul
if errorlevel 1 (
echo [失败] 注册表写入出错。
pause
exit /b 1
)
echo [完成] 已注册 ossbrowser:// 协议。
rem ---- 安装启动自动定位包装层 ----
if not exist "%~dp0resources\\app" mkdir "%~dp0resources\\app"
echo {"name":"oss-browser","version":"1.18.0","main":"main.js"}> "%~dp0resources\\app\\package.json"
if exist "%~dp0_wrapper.b64" del "%~dp0_wrapper.b64" >nul
`
const tail = `if exist "%~dp0resources\\app\\main.js" del "%~dp0resources\\app\\main.js" >nul
certutil -decode "%~dp0_wrapper.b64" "%~dp0resources\\app\\main.js" >nul
if errorlevel 1 (
echo [警告] 包装层解码失败,跳过自动定位补丁(协议拉起仍可用)。
) else (
echo [完成] 已安装启动自动定位包装层(resources\\app)。
)
del "%~dp0_wrapper.b64" >nul
rem ---- 默认路径配置(已存在则不覆盖,尊重手动修改) ----
if not exist "%~dp0trae_default_oss_path.txt" (
echo oss://android-o1-images/trae-files-temp/> "%~dp0trae_default_oss_path.txt"
echo oss-cn-shanghai>> "%~dp0trae_default_oss_path.txt"
echo [完成] 已生成默认路径配置 trae_default_oss_path.txt
)
echo.
echo 现在可回到网页点击「打开 oss-browser」。
echo 首次拉起时浏览器会弹确认框,勾选“始终允许”后即为无感打开。
echo 启动后地址栏会自动定位到 trae_default_oss_path.txt 中的路径。
echo 该文件第1行为 oss 路径,第2行可选 region(默认 oss-cn-shanghai)。
echo.
pause
`
const bat = (head + echoLines.join('\r\n') + '\r\n' + tail).replace(/\r\n/g, '\n').replace(/\n/g, '\r\n')
fs.writeFileSync(OUT, bat)
console.log('bat written, echo lines =', echoLines.length)