TUTTO! Tracker®

安装应用

把TUTTO放到主屏幕

Tutto Tracker是一款网页应用。你可以直接从浏览器安装,获得独立图标和无浏览器栏的窗口。不需要应用商店、账户,也不用读47页连律师本人都不想看的条款。

iPhone和iPad

  1. 1

    打开Safari

    在Safari中访问tuttotracker.com。其他iPhone浏览器可能也可以,但Apple仍把好餐具锁在自己的抽屉里。

  2. 2

    点击分享

    点击分享按钮,也就是带向上箭头的方框。

  3. 3

    选择添加到主屏幕

    向下滚动并点击“添加到主屏幕”。如果出现“作为网页App打开”,请保持开启。

  4. 4

    点击添加

    点击“添加”确认。TUTTO图标会出现在主屏幕上,看起来可疑地正式。

Android

  1. 1

    打开Chrome

    在Chrome中访问tuttotracker.com。

  2. 2

    打开菜单

    点击右上角的三个点。

  3. 3

    选择安装应用

    点击“安装应用”或“添加到主屏幕”。Android偶尔会改文字,大概是为了锻炼大家的观察力。

  4. 4

    确认安装

    点击“安装”。TUTTO图标会出现在应用列表中,并以独立窗口打开。

工作方式

像普通应用一样

Tutto Tracker会在独立窗口中打开并使用TUTTO图标。本质上仍是同一个网站,只是穿了条像样的裤子。

支持离线使用

成功在线打开一次后,本地游戏、规则、技巧和本指南无需网络也能使用。

数据保留在本机

本地分数、玩家姓名和设置留在你的设备上。没有账户,也没有云端资料偷偷评价你的自定义规则。

在线房间需要网络

共享房间通过房间代码同步,因此需要联网。离线骰子不太合群。

自动更新

联网打开时,应用会检查新版本并更新离线文件,无需访问应用商店。

可以随时删除

像其他应用一样删除图标即可。浏览器数据可能保留,除非你另外清除。

技术实现原理(面向工程师)

安装协议

Web App Manifest提供应用名称、图标、主题色、启动URL和独立显示模式。浏览器依据这些元数据在主屏幕创建应用;它没有原生封装,也没有应用商店二进制文件。

Service Worker

Service Worker位于应用与网络之间。它会把计分器、六种语言的规则、技巧和安装指南,以及共享CSS、图标和manifest预先存入带版本号的Cache Storage缓存。

请求策略

页面导航采用network-first:联网时优先使用最新内容,离线时回退到缓存页面。静态资源采用cache-first。/api/请求会被排除,因此在线房间响应不会被当作可复用的离线数据。

本地状态

本地游戏以JSON形式序列化到localStorage。分数、玩家姓名、设置和自定义规则只保留在该设备的当前浏览器配置中。清除网站数据也会删除这些状态。

在线房间

Cloudflare Worker提供房间API,并把共享游戏状态存入Cloudflare D1。客户端通过PUT写入变更,并大约每秒轮询一次较新的状态。API响应使用no-store;定时任务会删除30天未变更的房间。

更新

Service Worker缓存使用明确的版本号。部署时会递增版本;新worker下载当前核心文件、激活、删除旧缓存并接管已打开的客户端。下一次导航即可使用新版本。