# 🛠 JavaScript API

创作者可以通过「滑记」开放 JavaScript API 为卡片添加更多特性,这些 API 可以在模板和插件中使用 调用 API 的方式如下:

await HuajiJS.<scope>.<methodName>()
// or
HuajiJS.<scope>.<methodName>().then(/* do something */)

# AnkiDroid 兼容

为更好地服务 Anki 创作者,提供了一套与 AnkiDroid 兼容的 API,可以直接使用 AnkiDroidJS 进行调用。
注意:与 AnkiDroid 不同的是,API 的返回值都是 Promise 类型。

# API 列表

# initialize

初始化 api

await AnkiDroidJS.init()

# showAnswer

显示答案

await AnkiDroidJS.showAnswer()

返回:Promise

# buttonAnswerEase1

学习卡片 - 忘记(Again),仅在学习页面可用

await AnkiDroidJS.buttonAnswerEase1()

返回:Promise

# buttonAnswerEase2

学习卡片 - 模糊(Hard),仅在学习页面可用

await AnkiDroidJS.buttonAnswerEase2()

返回:Promise

# buttonAnswerEase3

学习卡片 - 记得(Good),仅在学习页面可用

await AnkiDroidJS.buttonAnswerEase3()

返回:Promise

# buttonAnswerEase4

学习卡片 - 太简单(Easy),仅在学习页面可用

await AnkiDroidJS.buttonAnswerEase4()

返回:Promise

# ankiMarkCard

卡片标星将卡片标星

await AnkiDroidJS.ankiMarkCard()

返回:Promise

# ankiSuspendCard

完全掌握(隐藏卡片),仅在学习页面可用

await AnkiDroidJS.ankiSuspendCard()

返回:Promise<boolean>,值为true

# ankiShowToast

弹出 Toast弹出一则 toast,展示传入的 message

await AnkiDroidJS.ankiShowToast(message)

返回:Promise

# ankiIsDisplayingAnswer

判断当前展示的是否为卡片的‘答案面’

await AnkiDroidJS.ankiIsDisplayingAnswer()

返回:Promise<boolean>

# ankiIsInFullscreen

当前展示是否为全屏

await AnkiDroidJS.ankiIsInFullscreen()

返回:Promise<boolean>

# ankiIsInNightMode

当前系统是否为‘深色模式’

await AnkiDroidJS.ankiIsInNightMode()

返回:Promise<boolean>

# ankiGetNewCardCount

获取当前学习队列中的‘待新学’卡片数量

await AnkiDroidJS.ankiGetNewCardCount()

返回:Promise<int>

# ankiGetLrnCardCount

获取当前学习队列中的‘学习中’卡片数量

await AnkiDroidJS.ankiGetLrnCardCount()

返回:Promise<int>

# ankiGetRevCardCount

获取当前学习队列中的‘待复习’卡片数量

await AnkiDroidJS.ankiGetRevCardCount()

返回:Promise<int>

# ankiGetCardMark

获取卡片标星状态

await AnkiDroidJS.ankiGetCardMark()

返回:Promise<boolean>

# ankiGetCardId

获取卡片 id,和 AnkiDroid 不同的是,类型为 String

await AnkiDroidJS.ankiGetCardId()

返回:Promise<String>

# ankiGetCardNid

获取卡片 note id,和 AnkiDroid 不同的是,类型为 String

await AnkiDroidJS.ankiGetCardNid()

返回:Promise<String>

# ankiGetCardDid

获取卡片 deck id,和 AnkiDroid 不同的是,类型为 String

await AnkiDroidJS.ankiGetCardDid()

返回:Promise<String>

# ankiGetDeckName

获取卡片 deck 名

await AnkiDroidJS.ankiGetDeckName()

返回:Promise<String>

# ankiGetCardMod

获取卡片上次修改时间,返回值为 unix 时间戳(秒)

await AnkiDroidJS.ankiGetCardMod()

返回:Promise<int>

# ankiGetCardType

获取卡片类型

  • 0:待新学
  • 1:学习中
  • 2:待复习
  • 3:失误(重新学习)
await AnkiDroidJS.ankiGetCardType()

返回:Promise<int>

# ankiGetCardQueue

获取卡片所在队列,这里和 AnkiDroid 有一些不同

  • 1:已隐藏(完全掌握)
  • 0:待新学
  • 1:学习中
  • 2:待复习
  • 3:失误(重新学习)
await AnkiDroidJS.ankiGetCardQueue()

返回:Promise<int>

# ankiGetCardLeft

获取卡片待复习次数,格式为 a*1000+b,其中 a 代表‘今天剩余的复习次数’,b 代表‘完全掌握还需要的复习次数’

await AnkiDroidJS.ankiGetCardLeft()

返回:Promise<int>

# ankiGetCardDue

获取卡片下次出现的时间,返回值为 unix 时间戳(秒)

await AnkiDroidJS.ankiGetCardDue()

返回:Promise<int>

# ankiGetCardInterval

获取卡片下次出现的间隔,返回值为 unix 时间戳(秒)

await AnkiDroidJS.ankiGetCardInterval()

返回:Promise<int>

# ankiGetCardFactor

获取卡片间隔增长系数

await AnkiDroidJS.ankiGetCardFactor()

返回:Promise<int>

# ankiGetCardReps

获取卡片学习次数

await AnkiDroidJS.ankiGetCardReps()

返回:Promise<int>

# ankiGetCardLapses

获取卡片失误次数

await AnkiDroidJS.ankiGetCardLapses()

返回:Promise<int>

# ankiGetNextTime1

获取显示在‘忘记’(Again)按钮上的时间间隔,返回值为 String 类型,例如 '+1 分钟','+1 天'

await AnkiDroidJS.ankiGetNextTime1()

返回:Promise<String>

# ankiGetNextTime2

获取显示在‘模糊’(Hard)按钮上的时间间隔,返回值为 String 类型,例如 '+1 分钟','+1 天'

await AnkiDroidJS.ankiGetNextTime2()

返回:Promise<String>

# ankiGetNextTime3

获取显示在‘记得’(Good)按钮上的时间间隔,返回值为 String 类型,例如 '+1 分钟','+1 天'

await AnkiDroidJS.ankiGetNextTime3()

返回:Promise<String>

# ankiGetNextTime4

获取显示在‘太简单’(Easy)按钮上的时间间隔,返回值为 String 类型,例如 '+1 分钟','+1 天'

await AnkiDroidJS.ankiGetNextTime4()

返回:Promise<String>

# 暂不支持的 API 列表

  • ankiSetCardDue
  • ankiBuryCard
  • ankiBuryNote
  • ankiSuspendNote
  • ankiAddTagToCard
  • ankiShowOptionsMenu
  • ankiShowNavDrawer
  • ankiIsTopbarShown
  • ankiIsActiveNetworkMetered
  • ankiGetETA
  • ankiGetCardFlag
  • TTS 相关