步骤1:
纳入程序包依赖项
纳入程序包依赖项
您的应用可能有多个触发器,这些触发器会更改客户有权获得的直播内容。其中一些示例包括登录、注销或订阅更改。在这些触发点,您可以调用EpgSyncTaskScheduler
方法来计划EPG同步任务。
如果客户不再有权获得任何内容,例如取消订阅时,请执行以下操作。
ChannelLineupProvider.add([])
+ ChannelLineupProvider.commit()
以及LiveEventProvider.add([])
+ LiveEventProvider.commit()
,从系统中清除客户的直播内容。cancelScheduledTasks()
方法取消任何计划的EPG同步任务,因为无需刷新任何授权内容。以下是示例代码片段,演示了在onLogin()
和onLogout
回调中如何使用EpgSyncTaskScheduler
。
import { EpgSyncTaskScheduler } from '@amazon-devices/kepler-epg-sync-scheduler';
import {
ChannelLineupProvider,
LiveEventProvider,
} from '@amazon-devices/kepler-epg-provider';
const onLogin = async (): Promise<void> => {
try {
// 以给定的间隔计划EPG同步任务
await EpgSyncTaskScheduler.scheduleTask(
'<程序包ID>.epgSyncTask', // 同步任务的组件ID
60 * 24, // 24小时(以分钟为单位)
);
console.info('EpgSync - 已成功计划EPG同步任务!')
} catch (error) {
console.error(`EpgSync - EPG同步任务计划失败,原因为${error}`);
throw error;
}
};
const onLogout = async (): Promise<void> => {
try {
// 清除客户现有的频道时间表和直播活动
await ChannelLineupProvider.add([]);
await ChannelLineupProvider.commit("NO_VERSION");
await LiveEventProvider.add([]);
await LiveEventProvider.commit("NO_VERSION");
// 取消已计划任务
EpgSyncTaskScheduler.cancelScheduledTasks();
console.info('EpgSync - 已成功删除EPG同步任务!')
} catch (error) {
console.error(`EpgSync - EPG同步清除失败,原因为${error}`);
throw error;
}
};
当您的onLogin()
回调运行时,您应该会看到和如下所示类似的日志行:
INFO ktf.tm.nests:Successfully scheduled EPG Sync task
Last updated: 2025年9月30日