安卓手机用 Via 浏览器查询 B站 2233 联名借记 IC 卡制卡进度

2026-10-12 资源

申请过中国银行哔哩哔哩 2233 联名借记 IC 卡的朋友大概都有这种体验:在官方查询页面看到的永远只有一句笼统的「制卡中」,看不到卡到底走到了哪一步、什么时候开始制卡、有没有寄出。

其实页面上显示的只是一个状态字段,页面背后的数据里还有更完整的节点信息。这篇文章介绍一个在安卓手机上的小技巧:用 Via 浏览器保存一段 javascript: 书签脚本,在「制卡中」那个页面点一下书签,就把页面内部的完整进度数据以 JSON 形式打印出来。

一、准备工作

  • 一台安卓手机(iOS 上的 Safari / Chrome 无法这样执行书签脚本)
  • Via 浏览器(体积小巧,对 javascript: 书签的支持比较完整)
  • 你自己的线上申请链接或查询入口

下面是官方线上申请入口(B站渠道):

https://open.boc.cn/bankcard/cardReserve/index.html#/?appId=8AFAF8C546EB63E9AE3202BC13DB46FC&prodId=P260802MYZGWK2025060515073600001&subProdId=JJKYY&funcId=cardIntroduce&chanId=bili_bzapp

链接里的 appId、prodId、chanId 等参数都是有意义的,建议整条原样打开,不要裁剪。

二、第一步:把脚本存成书签

要用的代码就只有一行:

javascript:(()=>{try{let x=document.getElementsByClassName("progress-result-wrap")[0].__vue__.$parent.recordInfo;alert(JSON.stringify(x,null,2))}catch(e){alert("读取失败:"+e.message)}})();

在 Via 浏览器里新建书签,名称填「查询制卡进度」,网址粘贴上面这一整行,保存。

这里有两个几乎人人会踩的坑:

  1. javascript: 前缀不能丢。 保存时确认网址是以 javascript: 开头的。不少浏览器会把往地址栏里粘贴的 javascript: 前缀直接抹掉,所以不要图省事往地址栏贴——一定走「书签」这条路。
  2. 整行不能断。 中间一旦被编辑器或输入框自动换行、或插入空格,脚本就失效了。粘贴后建议从头到尾扫一眼,确认是一整行。

三、第二步:打开「制卡中」页面,点书签

  1. 用 Via 打开申请 / 查询入口,按提示查询你的卡片进度;
  2. 当页面显示出 「制卡中」 这个状态时,停留在这个页面;
  3. 点开地址栏或菜单,选择刚才创建的「查询制卡进度」书签。

正常情况下会立刻弹出一个窗口,里面是格式化好的 JSON,例如:

{
  "…": "…"
}

里面通常是这张卡在制卡流程里的各个节点信息(状态、时间、以及后续的物流相关信息等)。字段名称会随页面版本变化,以实际弹出来的内容为准,这里不逐一列举。

四、原理:脚本到底做了什么

页面是 Vue 框架渲染的,Vue 会把组件实例挂到对应的 DOM 元素上(__vue__)。脚本的逻辑就三步:

  1. 按类名 progress-result-wrap 找到进度结果那块 DOM;
  2. 顺着 __vue__ 拿到组件实例,再往上一层父组件取它的 recordInfo(就是页面用来渲染进度的原始数据);
  3. 用 JSON.stringify(x, null, 2) 把它格式化后 alert 出来。

外面套了 try...catch,所以万一页面改版、取不到数据,会弹「读取失败:」加上具体原因,而不是毫无反应。

五、安全性说明

这段脚本值得单独说清楚,因为它做的事情很有限:

  • 只读:只从当前页面的内存里读数据,不写入、不修改页面;
  • 不联网:没有任何网络请求,数据不会发往任何第三方;
  • 不外传:数据只通过浏览器的 alert 弹窗显示给你自己看。

真正的风险在你自己这一侧:弹出的数据可能包含你的个人信息(姓名、证件号、手机号、物流地址等),截图分享到网上之前记得打码。

另外要强调:请只在官方页面(open.boc.cn)上使用这段脚本,不要在来路不明的页面上执行任何 javascript: 代码——同样的手法换个脚本,就能把你的数据送出去。

六、常见问题

点了书签没反应?
十有八九是 javascript: 前缀在保存时被吞掉了,或者这行脚本断了行。重新编辑书签,把整行完整粘贴一次。

弹出「读取失败:…」?
可能的原因:页面还没完全加载完(等状态显示出来再点);页面改版导致类名或数据结构变了(这种情况下脚本需要相应调整);或者当前不是 Vue 渲染的进度页。

弹出的内容和我预期的不一样?
字段会随版本调整,脚本做的事只是把页面已有的数据原样打印,不做任何解读。以页面上显示的状态为最终依据。

「制卡中」一直不变?
制卡和邮寄本身需要时间。这个脚本只是让你能看到更细的节点,并不改变流程进度。

七、小结

整件事其实就一句话:把一段读取页面内部数据的脚本存成 Via 书签,在「制卡中」的页面点一下。

代码放在下面,方便直接复制:

javascript:(()=>{try{let x=document.getElementsByClassName("progress-result-wrap")[0].__vue__.$parent.recordInfo;alert(JSON.stringify(x,null,2))}catch(e){alert("读取失败:"+e.message)}})();

最后提醒一句:以上读到的只是页面呈现的数据,卡片的实际状态请以银行系统的记录为准。页面若改版,脚本可能失效,届时把类名或字段名按新版本改一下即可。