🎬 短剧模块
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,不要把空列表当作请求成功。