所有页面
本页内容

将 OAR 安装为应用

OAR 网页界面是一个渐进式 Web 应用(PWA)。安装后,它有自己的图标和自己的窗口,启动时没有浏览器的地址栏和标签页。它就是浏览器中显示的那个网页界面,由你的中继提供:设备上无需再安装其他任何东西,所有会话都保留在中继上。

所需条件 #

安装以及推送通知都需要安全上下文:必须通过 HTTPS 或 localhost 访问中继。你网络中使用普通 http 地址的中继不符合条件,这也是通常要为手机设置隧道的原因:参见 Cloudflare Tunnel、SSH 隧道或反向代理。在此基础上浏览器是否提供安装、如何提供,由浏览器自己的规则决定。

安装 #

先在该设备的浏览器中打开中继并登录(参见首次运行)。然后:

设备和浏览器 操作方法
Android、Chrome 打开浏览器菜单(⋮),选择 Install app(安装应用)或 Add to Home screen(添加到主屏幕)。如果 Chrome 提示该应用已安装,请从启动器打开它,或先卸载旧的副本。
iPhone 和 iPad、Safari 在 Safari 中打开中继,轻点 Share(分享),然后选择 Add to Home Screen。
桌面浏览器 打开浏览器菜单,选择 Install app(或 Add to Home screen,视浏览器的措辞而定)。

OAR 也有自己的 ⬇ 按钮,位于对话列表标题栏的右侧,在 + New Chat(新建对话)和 Status(状态)旁边(在窄屏幕上,先用 ☰ 打开列表):

  • 当浏览器已提供它的安装提示时,按钮的工具提示显示 Install app to home screen(将应用安装到主屏幕)。按下它会打开该提示。你接受后,OAR 会显示 Install accepted. The app will appear on your home screen.,并在浏览器报告安装完成后显示 App installed.。
  • 当浏览器没有提供安装提示时,工具提示显示 Show install instructions(显示安装说明),按下按钮会显示一条消息,列出适用于你所用平台(iPhone 和 iPad、Android 或其他任何设备)的步骤,与上表相同。

在已安装的应用中,以及在分享的对话中(那里不提供安装),该按钮是隐藏的。

名称和图标 #

已安装应用的名称由 Settings → General → Relay name(设置 → 常规 → 中继名称)决定,参见 Settings(设置)。它最多 60 个字符;为空时,应用名为 OAR。图标下方的标签是名称的第一个词;如果该词更长,则是名称的前 12 个字符。已配对的中继也用这个名称来称呼此中继。

名称保存在中继上,并通过应用清单提供给每个浏览器和每个地址,因此局域网地址和隧道地址上的名称是一致的。应用属于安装它时使用的地址:位于反向代理之后、带路径前缀(remotePath,参见 config.json)的中继是一个独立的应用。新安装使用安装那一刻的名称。已安装在 Android 上的应用会通过 Chrome 常规的清单更新获得新名称:会出现一次显示新名称的确认提示,之后启动器中的标签随之更改。其他系统如何处理更改后的名称,由它们自己决定。

图标跟随 Theme(主题):Day mode(日间模式)使用浅色图标和白色启动背景,Night mode(夜间模式)使用深色图标和深色启动背景。更改主题后,已安装应用自己的启动画面会在系统刷新该应用时更新,在 Android 上这可能需要一天。

要在一台设备上区分多个中继,请从各自的地址分别安装,并为每个中继设置不同的 Relay name:每个地址都是一个单独的应用,有自己的图标和标签。

在应用内登录 #

中继通过 cookie 让浏览器保持登录(参见首次运行)。当已安装的应用没有有效的登录时,它会显示登录框 Enter your access token to connect(输入你的访问令牌以连接)。把令牌粘贴到 Access token(访问令牌)字段中,然后按 Connect(连接)。如果你需要再次查看令牌,oar url 会打印当前令牌。执行 oar setup --new-token 后,每台设备(包括已安装的应用)都必须重新登录。

应用的行为方式 #

返回按钮和返回手势 #

系统的返回按钮或返回手势绝不会直接关闭已安装的应用。返回只会关闭已打开的文件查看器(0.9.9 新增)或子智能体查看器,不会关闭别的东西。当没有这类可关闭的内容时,应用会显示 Press back again to close the app;中间不触碰应用、再按一次返回,就会关闭应用。返回不会关闭对话框、菜单或对话列表。文件查看器的说明见手机和已安装应用中的返回,子智能体查看器的说明见子智能体查看器。

在你第一次触碰之前,浏览器允许返回操作离开应用,页面无法改变这一点。在浏览器标签页中,返回按钮仍归浏览器管。

全屏 #

应用在自己的独立窗口中打开。在窄屏幕上,它还会在你第一次触碰时向系统请求全屏(只要系统允许)。OAR 自己的 ⬇ 安装按钮和全屏按钮在应用中是隐藏的。页面占满整个屏幕(包括刘海区域),并让标题栏保持在顶部安全区域之下。

从后台返回 #

短暂切换应用不会有任何影响:应用进入后台后,会与中继保持连接 45 秒。之后它会关闭连接。你回来时,它会立即重新连接,并重新读取对话列表和当前对话、模型列表、会话 worker 的状态,以及未完成的提问和计划看板,因此你离开期间发生的事情无需任何操作就会显示出来。设备重新联网或从睡眠中唤醒时也是如此。在无法访问中继期间,对话列表标题栏左侧的状态点显示为灰色,其工具提示为 Web relay unreachable(无法访问网页中继);应用会持续重试。

应用处于前台时会告知中继;只有在没有任何设备把应用置于前台时,中继才会发送推送通知。

更新 #

网页界面由中继提供,因此在中继主机上更新 OAR 也会更新界面。已安装的应用会保留一份外壳副本,但只要能访问中继,就会优先从中继加载页面及其脚本。当它在启动时发现有新版本,会直接切换过去,不会询问你;如果切换失败一次,它会删除保存的外壳并重新加载。你无需重新安装。

限制 #

  • 离线时,应用可以打开保存的外壳,但所有需要中继的功能都无法使用:对话、文件浏览器、发送消息。应用对中继的请求绝不会被保存。
  • 安装需要所需条件中所述的安全上下文。