# 🛠 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 相关