🗒️iOS快捷指令实现秒级记账
2023-9-26
| 2023-9-26
0  |  阅读时长 0 分钟
type
status
date
summary
tags
category
icon

背景

之前一直有记账,用了一个小众的记账的App。由于App不再维护,数据被迁移到另外一个App,交互习惯甚是不喜欢了。中间想用飞书的多维笔记记账,但由于飞书的openApi不支持个人帐号,折腾了一下企业帐号,也不是很好用,故停了一年多没有记账。
最近看了看其他类似飞书多维表格的产品,发现还挺多的,例如airtable、vika等。简单对比了一下vika等一个数据空间最多支持 5000 条记录,而且其开发Api也使用方便,故选择Vika作为数据库,配合使用iOS的捷径填写数据
 

概览

添加数据,先输入金额,然后空格分割,可选输入标签、输入消费日期
notion image
点击确认之后,就自动分割然后提交到Vika中:
notion image
 

新增数据表

新增一个空白的维格表,然后修改一下对应的表头,同时保证一下数据格式:
  1. 金额 → 数字
  1. 类别 → 多选
  1. 实际日期 → 日期
  1. 创建日期 → 创建时间 (会自动以提交的日期作为默认值)
 
新增完一个维格表之后,需要获取其对应的ID,也就是链接上面以 dst开头的一串字符:
notion image
 
同时也需要生成一个API token方便后续的iOS捷径调用场景表记录使用:
  1. 点击左下角的个人头像,进入「用户中心」,前往「开发者配置」界面。
  1. 点击「+」号生成 API Token。注意:首次生成时需要绑定邮箱。
  1. 复制 API Token。
 
接下来搞iOS的捷径。虽然也可以选择使用Vika的客户端,但每次记账都需要打开一个App,甚是有些麻烦不是。

创建iOS捷径

因为平时开发都是使用Mac电脑,同时Mac电脑也支持捷径,更为可贵的是Mac上的捷径能通过iCloud自动同步到上面,故使用Mac创建一个Vika记账的捷径。
 
该捷径一共会使用到以下的操作,可以先收藏,然后创建的时候方便些:
  1. 文本(Text):用于前置输入前面创建的维格表的 id 和 API Token
  1. 设置变量(Set Variable):将操作的输入设置为一个变量名称,方便后续操作
  1. 请求输入(Ask for input):点击捷径是输入相关的信息,该捷径我自定义了一个输入格式——金额[ 标签][ 标签][ 日期],标签和日期是可选项,通过空格分开,可以最多设置三个标签
  1. 拆分文本(Split Text):通过空格拆分输入的文本的内容,获得金额,标签等信息
  1. 为每一个项目重复(Repeat with Each):遍历拆分的文本内容,通过一定规则进行内容识别
  1. 匹配文本(Match Text):通过正则匹配金额,标签,日期数据
  1. 如果(If):做一些条件判断,设置变量的数据,也可以做一些异常的校验
  1. 获取 URL 内容(Get Contents of URL):通过 Vika 的API创建新的表记录
  1. 获取词典值(Get Dictionary Value):获取API返回数据的内容
  1. 显示通知(Show Notification):展示结果通知
  1. 停止执行此快捷指令(Stop This Shortcut): 如果没有金额时,则终止
 
以下为捷径的截图:
  1. 设置API的相关的基本信息:
    1. notion image
  1. 输入金额、标签、日期等数据,例如“12 早餐 2023-09-24”,“24”, “午餐 火锅 123”,如果不输入日期,默认为创建时的日期。
    1. notion image
      此次使用了大量的If来设置类别,只因为捷径中字典值如果是array或dictionary时,不支持直接设置一个变量。
       
      一些里面使用的正则表达式:
       
  1. 异常处理,如果输入金额则直接退出,如果没有输入日期,则设置一个默认的日期
    1. notion image
  1. 最后是通过API创建数据:
    1. notion image
 
最后就是验收成果的时候,可以在手机或电脑愉快的记账了。
 

参考文档:

  1. 维格云 API 简介
  1. 教程:用快捷指令和维格表 API 实现语音待办事项录入
  1. iOS捷径中的正则
 
实用教程
  • 教程
  • 最简申请Azure OpenAI方式Tauri 网页动态注入Javascript
    目录