米侠浏览器旧版本(v3.7.0及以下)不支持typescript直接运行,需升级至v5.5.4.2及以上“脚本版”或通过esbuild/tsc预编译为es2018兼容js,再添加标准元数据块、修正@match与@run-at规则,最后部署至/sdcard/mixiabrowser/scripts/并启用脚本注入。

米侠浏览器旧版本(v3.7.0及以下)不支持TypeScript脚本直接运行,因为底层JS引擎未集成TS编译器且无Babel或esbuild注入能力;若强行将.ts文件放入scripts目录,浏览器会报“SyntaxError: Unexpected token 'const'”等解析错误,而非提示格式不支持。
确认当前版本是否具备TS基础运行条件
在地址栏输入 about:version → 查看版本号末尾是否含 UM 或 UserScript 字样。不含则说明该安装包从源头就不支持任何用户脚本,包括TS转译后的JS——此时唯一解法是卸载并重装v5.5.4.2及以上“脚本版”安装包,【旧版本无法通过任何设置补救】。
若版本号为 v4.2.1 或 v5.0.x,则进入下一步;但需注意:v5.0–v5.4.x虽有脚本注入开关,仍缺少TS编译链,必须靠外部预编译。
将TS脚本转为兼容JS并手动部署
方法一:用VS Code + esbuild 快速编译(推荐)
安装esbuild:npm install -D esbuild → 在TS脚本同目录下新建build.js,内容为:
require('esbuild').build({ entryPoints: ['main.ts'], bundle: true, outfile: 'main.js', target: 'es2018', minify: true }) → 终端执行node build.js → 输出main.js即为可部署文件。
方法二:在线编译(仅限无敏感逻辑的简单脚本)
打开 TypeScript Playground → 粘贴TS代码 → 左侧选择ES2018目标 → 右侧自动生成JS → 全选复制 → 粘贴到纯文本编辑器(如Acode)→ 另存为UTF-8无BOM格式 → 文件名必须为小写.js扩展名。
【关键陷阱】:若TS中用了import语句(如import { foo } from './utils.ts'),在线编译器无法处理模块依赖,必须用esbuild或tsc完整构建,否则生成的JS里仍含import导致运行时报错。
修正元数据块与匹配规则
第一步:打开编译后的main.js → 在文件最顶部插入标准UserScript元数据块(必须紧贴首行,不可空行):
// ==UserScript==<br>// @name My TS Script<br>// @namespace http://tampermonkey.net/<br>// @version 1.0.0<br>// @match https://example.com/*<br>// @run-at document-end<br>// @grant none<br>// ==/UserScript==
第二步:检查@match是否覆盖目标网页URL。旧版米侠对通配符解析较弱,*://*.example.com/*可能失效,应拆分为两行:@match https://example.com/* 和 @match http://example.com/*。
第三步:强制指定@run-at document-end。旧版本默认执行时机为document-start,此时DOM未加载,querySelector等操作必然失败。
部署到正确路径并启用
① 用文件管理器进入 /sdcard/MiXiaBrowser/scripts/ 目录。
② 将编译好的main.js文件复制进去,确保扩展名是.js(不是.ts、.JS或.js.txt)。
③ 返回米侠浏览器 → 点击右上角三个点 → 【设置】→【高级设置】→【脚本注入】→ 开启“启用脚本注入” → 重启浏览器。
④ 再次进入【脚本注入】页 → 点击右上角【刷新脚本列表】→ 找到刚添加的脚本 → 点击右侧开关启用。
这一步操作起来很简单,直接把文件拖进去就行。但若重启后列表仍为空,请立即检查文件管理器是否真的写入成功——某些安卓厂商(如华为EMUI)会拦截/sdcard/下的写入操作,需手动授予米侠浏览器“存储权限”并在系统设置中关闭“优化电池使用”。











