浮动计时器和秒表通过 SOLID 架构提高生产力
# DsCrono - Chrome 网上应用店的产品列表
**名称:** DsCrono - 浮动计时器和秒表
**简短描述:**
浮动倒计时、目标时间计时器和秒表在任何页面上都可见。
**详细描述:**
DsCrono 是基于 Chromium 的浏览器的生产力扩展程序,可让您直接在任何网站上创建浮动计时器和秒表。将其用于番茄工作法、会议、焦点区块、烹饪、交接或任何需要在不离开页面的情况下进行可见时间跟踪的工作流程。
**当前亮点:**
* **倒计时模式:** 创建带有可选声音和浏览器通知的经典倒计时器。
* **目标时间模式:** 倒计时到特定的挂钟时间,然后在零后继续计数,同时完成的视觉状态保持活动状态。
* **开放目标模式:** 将目标时钟留空,DsCrono 将创建一个不自动结束的开放式向上计数计时器。
* **从零模式:** 立即在“00:00:00”启动秒表。
* **安全翻转确认:** 如果今天所选的目标时间已经过去,DsCrono 会询问是否应在明天的同一时间安排计时器。
* **稳定的 ID:** `createTimer` 返回生成的 `id`,使以后的停止请求具有确定性。
* **一致的到期时间:** 即使声音被禁用,完成的计时器也会保持其视觉结束状态。
**主要特点:**
* **浮动覆盖:** 计时器在当前页面顶部保持可见。
* **多个计时器:** 同时运行多个独立的计时器和秒表。
* **目标工作流程:** 倒计时到目标小时,在零后继续计数,或在“开放目标”中保持开放式。
* **所有页面模式:** 保持计时器在每个选项卡上可见,或将其限制为当前选项卡。
* **自定义外观:** 选择位置、大小、字体、文本颜色、背景颜色和堆叠方向。
* **本机警报:** 使用浏览器通知和可选声音,这样就不会错过重要的计时器。
* **专用关闭按钮:** 每个浮动计时器都包含一个“X”按钮,可通过集成使用的相同后台 API 来停止它。
* **开发者 API:** 以编程方式创建、检查和停止计时器。
**对于开发者:**
DsCrono 公开了一个外部消息 API,以便其他工具可以创建计时器、检查扩展运行状况以及以编程方式停止计时器。弹出流和外部集成共享相同的后台入口点。
**示例:创建倒计时**
```javascript
chrome.runtime.sendMessage("pgkfhmfoobanlbfcfkifecdanbobfaof", {
动作:“创建定时器”,
有效负载:{
标题:“工作会议”,
持续时间:1500,
背景颜色:“蓝色”,
显示警报:true
}
},(响应)=> {
控制台.log(响应); // { 成功:true,id:123 }
});
````
**示例:从零开始创建秒表**
```javascript
chrome.runtime.sendMessage("pgkfhmfoobanlbfcfkifecdanbobfaof", {
动作:“创建定时器”,
有效负载:{
标题:“项目跟踪”,
来自零:真实,
背景颜色:“绿色”,
所有页面:true
}
},(响应)=> {
console.log(response.id);
});
````
**示例:创建目标小时计时器**
```javascript
const 目标 = new Date();
目标.setHours(15, 30, 0, 0);
if (target.getTime() < Date.now()) {
target.setDate(target.getDate() + 1);
}
chrome.runtime.sendMessage("pgkfhmfoobanlbfcfkifecdanbobfaof", {
动作:“创建定时器”,
有效负载:{
title: "目标:15:30:00,交接",
目标:真实,
目标时间:target.getTime(),
显示警报:真,
声音:真实
}
},(响应)=> {
console.log(response.id);
});
````
如果当前时间为“05:30:00”且目标为“06:30:00”,则 DsCrono 从“01:00:00”开始,到达“00:00:00”一次,触发完成计时器流程,然后继续“00:00:01”、“00:00:02”、“00:00:03”,同时保持过期的视觉状态。
**示例:通过 ID 停止计时器**
```javascript
chrome.runtime.sendMessage("pgkfhmfoobanlbfcfkifecdanbobfaof", {
动作:“停止定时器”,
有效负载:{id:123}
});
````
**旧版按标题停留**
```javascript
chrome.runtime.sendMessage("pgkfhmfoobanlbfcfkifecdanbobfaof", {
动作:“停止定时器”,
有效负载:{标题:“工作会话”}
});
````
如果同时提供了“id”和“title”,DsCrono 将使用“id”。如果仅提供了“title”,DsCrono 会删除第一个完全匹配的标题。
**支持的属性参考:**
|物业 |描述 |默认/行为 |
| :---------------------------- | :---------------------------------------------------------------------------------------- | :------------------------------------------ |
| `标题` - |定时器名称 | `“外部定时器”` |
| `持续时间` - |倒计时持续时间(以秒为单位)|如果没有其他时间数据,则为“300” |
| `目标` - |启用目标时间模式 | `假` |
| `目标时间` |绝对目标时间戳 (hh:mm:ss) |可选|
| `从零` |从 `00:00:00` 开始计数 | `假` |
| `位置` |屏幕一角|继承保存的用户默认值 |
| `方向` |堆栈方向 |继承保存的用户默认值 |
| `尺寸` | “小”、“中”、“大” |继承保存的用户默认值 |
| `字体` |字体家族名称 |继承保存的用户默认值 |
| `字体颜色` | CSS 文本颜色 |继承保存的用户默认值 |
| `背景颜色` | CSS 背景色 |继承保存的用户默认值 |
| `显示警报` |浏览器通知提醒 |继承保存的用户默认值 |
| `声音` |完成时的音频警报 |继承保存的用户默认值 |
| `所有页面` |跨所有选项卡保留 |继承保存的用户默认值 |
**API注释:**
* `createTimer` 返回 `{ success: true, id }`。
* `stopTimer` 更喜欢 `{ id }`。
* `stopTimer` 也接受 `{ title }` 以实现向后兼容性。
* 弹出窗口创建的目标计时器显示“目标:HH:MM:SS,<标题>”或“打开目标,<标题>”。
**隐私政策:**
DsCrono 在浏览器本地运行。计时器数据和首选项存储在浏览器存储中,不会发送到外部服务器。
---
**类别:** 生产力/工作流程
**语言:** 英语 / 西班牙语
---
### 权限理由(隐私实践选项卡)
**权限:** `通知`
**理由(英文):**
“通知”权限用于在计时器到期时显示本机桌面警报。这可以确保即使浏览器最小化或聚焦到另一个应用程序,用户也能收到警报。
**理由(西班牙语):**
允许“通知”使用本机的警报,并在临时到期时使用。您可以使用最简单的方法来进行最小化或其他应用程序的操作。
[有限责任公司]




