同步源屏幕
Fire TV为客户“强制”刷新直播TV应用的权利、频道元数据和节目提供了机制,以获取最新信息,这些信息将显示在“Live TV Settings”(直播TV设置)屏幕上。

以下是同步过程中的启动画面示例。

请按照下面的步骤在您的应用中支持此功能。
集成步骤
步骤1: 在应用中包含必要的程序包依赖项
在package.json文件中添加以下依赖项。
"dependencies": {
"@amazon-devices/kepler-epg-provider": "^1.9.0",
}
- kepler-epg-provider程序包提供了用于向系统中推送EPG数据(频道权利、元数据和节目)的API。
步骤2: 更新您的清单文件
更新您的manifest.toml文件以包含同步源交互组件。以下是一个示例,显示了Vega示例应用的manifest.toml文件的一部分。
## 声明应用的同步源组件
[[components.interactive]]
id = "<程序包ID>.sync_source"
runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"
launch-type = "singleton"
## 声明应用支持同步源功能
[offers]
[[offers.message-target]]
## 使用之前定义的同一组件ID处理同步源。
uses-component = "<程序包ID>.sync_source"
## 直播TV设置使用此消息启动同步源屏幕。
uris = ["livetv://sync_source"]
步骤3: 创建您的屏幕
将以下文件添加到您的应用程序包中,并定义您的业务逻辑,以显示启动画面并向系统推送最新EPG数据。
创建应用的同步源屏幕,方法是在src文件夹中创建包含以下内容的EpgSyncSource.tsx文件:
import {
ingestChannelLineup,
ingestProgramLineup,
} from './src/EpgSyncTask';
const EpgSyncSource = () => {
// 将回调传递给频道和节目引入以更新进度条
const progressCallback = React.useCallback((progress: number) => {
// 更新进度条
}, []);
const ingestLineup = React.useCallback(async () => {
try {
// 引入频道和节目时间表
await ingestChannelLineup(progressCallback);
await ingestProgramLineup(progressCallback);
// 显示同步完成消息
} catch (error){
// 显示同步失败消息
}
// 等待3秒钟然后退出
await new Promise(r => setTimeout(r, 3000));
BackHandler.exitApp();
}, [progressCallback]);
// 屏幕启动时:
useEffect(() => {
// 如果需要频道权利,则显示登录屏幕
if(isCustomerLoggedin === false) {
showLoginScreen();
}
// 开始同步客户的直播TV数据
ingestLineup();
}, [ingestLineup]);
return (
<View style={styles.container}>
// 启动画面向客户显示状态消息和进度指示器
</View>
);
};
export default EpgSyncSource;
最好重复使用函数以通过EpgSyncTask提供频道和节目。如果您不打算重复使用函数,请参阅Vega EPG提供方,了解有关EPG引入的详细信息。
步骤4: 将屏幕的入口点告知系统。
更新您的index.js文件,以使用在您的manifest.toml文件中定义的组件ID和SyncSource.tsx中定义的屏幕来注册同步源组件。以下是Vega示例应用的代码。
import { AppRegistry } from 'react-native';
import App from './src/App';
import EpgSyncSource from './src/EpgSyncSource';
AppRegistry.registerComponent("<程序包ID>.main", () => App);
AppRegistry.registerComponent("<程序包ID>.sync_source", () => EpgSyncSource);
现在,通过同步源屏幕,您应用的结构应该正确无误。接下来,完成屏幕逻辑并进行同步。
同步源屏幕的预期行为
应用的同步源屏幕在启动时需要执行以下操作:
- 如果您的应用要求客户登录才能获得频道权利,而他们目前尚未登录,请将客户转到您的登录屏幕。
- 客户登录后,使用Vega EPG提供方同步客户的频道权利、元数据和节目,以将数据推送到系统。
- 此同步应立即启动,并作为后台任务执行。
- 最好重复使用相同代码以通过EpgSyncTask引入EPG。
- 为用户显示启动画面,表明同步正在进行中。
- 作为最佳实践,它应该有一个进度条,或者如果您无法实现进度条,则应该有一个加载动画。
- 此屏幕应显示一条警告消息,提示客户不应离开屏幕,否则同步将失败。
- 同步完成后,更新屏幕以通知用户同步已完成。
- 在同步完成后的几秒钟内退出屏幕。
相关主题
Last updated: 2025年10月3日

