WorkBuddy实战 2026-11-06

聊不下去的时候,让电话响起来

一个人拉着你聊天,你从「嗯嗯嗯」聊到「哈哈哈」,心里只剩一句话:我到底什么时候才能走。借口不如一个真电话。既然找不到合适的理由,那就自己造一个——这是「体面离场」的由来,也是这篇真正想说的:决定它像不像的,从来不是核心功能。

你有没有遇到过这种时候:

一个人拉着你聊天。他没有恶意,甚至聊得还挺热情。

但你已经从「嗯嗯嗯」聊到了「哈哈哈」,又从「哈哈哈」聊到了点头微笑,心里想的却只有一件事:

我到底什么时候才能走?

你不好意思直接说「我先走了」,于是开始找借口:

「我还有点事。」

「我等下还有个电话。」

「时间也不早了……」

这些借口都不如一个真的电话有说服力。如果这时候手机真的响了,而且看起来是个你不得不接的电话,你就能体面地走开。

于是我想了想:既然找不到一个合适的理由,那就自己造一个。

我用 WorkBuddy 做了一个网页,名字就叫——「体面离场」。

体面离场设置界面:联系人头像、延时与响铃方式选项
设置页:选谁打来、多久打来、怎么打

一、这个需求小到没人会立项

应用商店里有模拟来电的 App。我下过几个,都不太能用:开屏广告、看视频才给用、进去先要通讯录权限,最要命的是界面一眼假——那种 2016 年安卓的味道,红色绿色的圆按钮又亮又硬。

它们要满足所有人,所以谁都满足不好。而我要的其实只有四件事:选一个人、定一个时间、它响、我走。

小到不值得做的需求,正好适合自己做

因为产品团队算的是市场规模,你算的是这周三晚上八点。

二、几个别人不会做的细节

做的时候我在意的不是功能,是像不像。现实里的电话有几个特征,缺一个就会露馅。

细节现实里的样子大多数 App 的做法
连续来电着急的人不会只打一次响一次就结束
挂断之后手机锁屏,黑的,什么都不显示立刻跳回设置页
响铃声音两个频率叠出来的拍频播一段 mp3,循环得生硬
屏幕边界全屏,没有地址栏就是个网页

第一条我做了「连续催促」:挂断之后,过六到九秒对方自己再打来,最多三次。间隔是随机的,因为每次间隔都一样,反而像程序在数拍子。

这一条解决的是最难那部分。第一次来电你还需要解释一句「不好意思我接一下」;等它挂断又响第二次,你就不需要解释了。

第一次是借口,第二次是事实

第二条是待机屏。挂断之后不回到设置页,屏幕变成一块纯黑的锁屏,上面只有今天的日期和当前时间,取的还是本机真实时间,跟旁边人手机顶部显示的一致。这一屏要停留几秒,让对面觉得你只是挂了个电话。

第三条没用任何音频文件,声音是现场算出来的:两个差不了多少的频率叠在一起,会生出那种「嗡——」的拍频,一秒收尾,再跟一个短促的高音。老式座机铃就是这么响的,所以它比任何下载来的音效都像。紧急模式换一套更急的,间隔也更短。

第四条是浏览器的固有问题。地址栏没法被网页盖住,只能靠三件事降低露馅概率:从主屏幕图标启动、调全屏接口、实在不行把状态栏染成深色。这点代码占了不少篇幅——决定像不像的从来不是核心功能,是这些没人会写进需求的边角。

深色来电界面:来电人姓名、手机标签,以及接听和挂断两个圆形按钮
来电页:只有一个名字和两个按钮
通话中界面:九宫格拨号键与底部挂断按钮
通话页:六个键的位置和系统一模一样

三、会写的人,这次没写

我是做前端的。这种页面以前我自己写,大概两天:一堆动画、一个状态机、真机适配来回试。

这次我没有开编辑器。以前那套流程是写需求、想方案、写代码、调试;现在只剩四步:描述感觉、看结果、指出哪里不对、再改。

有意思的不是它能写代码,是我说的话变成了具体的东西:

  • 「姓名下面要有一行小字写『手机』」——系统来电界面就是这样分组的,加了它才像。
  • 「挂断以后不要回设置页,要停在一块像锁屏的屏幕」——这一句换掉了一整个页面。
  • 「等待的时候要有个环,不要只显示数字」——一圈缺口在收拢,等待就有了实体。
  • 「震动只在来电时,挂断不要震」——这种要求你不会写进需求文档,但它决定了手感。
你真正要讲清楚的从来不是技术,是那个东西应该长什么样

技术方案我一句没说,它来想。我做的工作全在判断这一侧:像不像、顺不顺手、该停几秒。

会写代码的人有个坏处:容易一开始就想怎么实现,而不是它应该长什么样。这次顺序被反过来了,反而快。

等待界面:一个带缺口的环形进度在收拢,中间是剩余秒数
等待页:一个有缺口的环在收拢

四、这类东西的意义

它不算作品。一个页面、几百行 CSS、一个状态机,没有任何技术难度。

但它把一句老话反过来了。以前看到这种需求,第一反应是「太小了,不值得做」;现在的第一反应是「太小了,正好自己做」。中间没有别的障碍——没有一个环节需要等别人点头。

能被别人做好的东西,用现成的;只有你自己需要的,才值得自己做

它现在就存在我的手机主屏幕上,一年大概用五六次。

每一次它响起来,我都可以少说一句很难说的话。


本文所述为个人自制的娱乐演示页面,不会真的拨打电话,也不读取通讯录。

在微信里点不动?点右上角「···」→「在浏览器打开」,再点下载。
文件是单个 HTML,双击就能用,断网也照常跑;声音是现场合成的,不带任何音频文件。不读通讯录,也不会真的打出去。加到主屏幕再打开,能少一条地址栏。