You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Capability API获取默认书签及识别其对应标识

Capability API获取默认书签标识方案

app.getList('BookmarkList')接口原生返回的书签列表确实不会直接携带默认书签的标记字段,你可以通过关联应用全局属性的方式实现判断,具体操作步骤如下:

  • 调用app.getAppProperties()接口读取应用全局配置,默认书签的ID会存储在返回结果的qDefaultBookmarkId字段中,这是Qlik官方约定的固定存储字段
  • 拿到默认书签ID后,再调用app.getList('BookmarkList')获取全量书签列表,遍历所有书签条目,将条目的qInfo.qId字段和默认书签ID做匹配,相等的即为默认书签
  • 你可以在遍历过程中给书签对象新增自定义标记字段,比如isDefault,方便后续业务逻辑直接调用

参考实现代码:

// 两步关联获取带默认标记的书签列表
let defaultBkmkId = ''
// 第一步读取应用全局属性拿默认书签ID
app.getAppProperties()
  .then(prop => {
    defaultBkmkId = prop.qDefaultBookmarkId || ''
    // 第二步拿全量书签列表
    return app.getList('BookmarkList')
  })
  .then(bkmkList => {
    const bookmarksWithDefaultFlag = bkmkList.qItems.map(bkmk => ({
      ...bkmk,
      isDefault: bkmk.qInfo.qId === defaultBkmkId
    }))
    // 输出的bookmarksWithDefaultFlag已携带默认标识
    console.log(bookmarksWithDefaultFlag)
  })

注意事项:

  • 部分低版本Qlik Sense企业版中,qDefaultBookmarkId可能嵌套在返回结果的qLayout属性下,读取时可以做兼容判断
  • 若应用未配置过默认书签,qDefaultBookmarkId会返回空值,代表当前应用无默认书签

内容的提问来源于stack exchange,提问作者Ryan Arpe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 03:15:03