🎬 短剧模块
2.0: 对应 2.0.0 纯短剧契约。pub.dev 当前仍提供 1.0.3;依赖尚未升级时请切换到 1.x 文档。

实时查询

短剧会持续上新或下线。所有页面应实时请求 SDK,不能长期缓存封面、分类或可播放状态。

final DramaPage firstPage = await PangrowthContent.getDramas(
  page: 1,
  pageSize: 20,
  order: DramaSortOrder.descending,
);

final DramaPage recommended =
    await PangrowthContent.getRecommendedDramas(page: 1, pageSize: 20);

final List<DramaInfo> selected =
    await PangrowthContent.getDramasByIds(<int>[1001, 1002]);

分类与搜索

final List<String> categories = await PangrowthContent.getDramaCategories();

final DramaPage categoryPage = await PangrowthContent.getDramasByCategory(
  category: categories.first,
  page: 1,
  pageSize: 20,
  order: DramaSortOrder.descending,
);

final DramaPage results = await PangrowthContent.searchDramas(
  query: '都市',
  page: 1,
  pageSize: 20,
);

分类和搜索统一返回 DramaPage。插件直接使用厂商返回的分页信息,不会在 Dart 层建立内容缓存或伪造分页。

用户数据

await PangrowthContent.setDramaFavorite(dramaId: 1001, favorite: true);
await PangrowthContent.setEpisodeLiked(
  dramaId: 1001,
  episode: 3,
  liked: true,
);

final DramaPage favorites =
    await PangrowthContent.getFavoriteDramas(page: 1, pageSize: 20);
final DramaPage history =
    await PangrowthContent.getDramaHistory(page: 1, pageSize: 20);

final List<DramaEpisodeStatus> status =
    await PangrowthContent.getEpisodeUnlockStatus(
  dramaId: 1001,
  freeEpisodes: 5,
);

自建聚合页埋点

自行渲染短剧列表时,必须在进入、离开和单个内容曝光时调用 trackDramaHomeEvent,否则推荐和结算数据不完整。

await PangrowthContent.trackDramaHomeEvent(
  DramaHomeTrackEvent.contentShown,
  drama: drama,
);

所有失败统一抛 PangrowthException,不要把空列表当作请求成功。

需要进一步协助?

与 LightCore 技术顾问沟通,获取商业化策略与集成支持。