我正在创建一个三星智能电视javascript应用程序,HTML页面已经完成,现在是时候集成远程控制选项了。
我的应用程序包含不同chanells等的标签/图像,当用户通过遥控器选择时,他将被重定向到。现在的问题是这个导航将如何工作?用户如何使用遥控器在这些通道选项卡上向左或向上或向下左转?
在三星智能电视文档中,他们提供了有关其密钥库的信息,但我如何在我的应用程序中使用它来移动到不同的元素?
答案 0 :(得分:4)
无法为您提供完全有效的解决方案,但至少有一些方法来自我们如何做到这一点。
您可以将HTML整理到不同的导航区域和类型中。导航区域具有导航类型,通常为列表或网格。
JavaScript导航控制器会跟踪您所在的区域。它还会处理按键(向上/向下/向左/向右/输入),并根据导航类型确定要突出显示的下一个项目。
假设您有一个标签列表:
<div id="maintabs" class="tabs nav-current-zone" data-nav-type="list">
<span class="tab nav-current-item">Tab 1</span>
<span class="tab">Tab 2</span>
<span class="tab">Tab 3</span>
</div>
JavaScript通常如下所示:
if($(".nav-current-zone").data("nav-type") === "list"){
if(key === "down"){
var currentItem = $(currentZone).find("nav-current-item");
var nextItem = $(currentItem).next();
$(currentItem).removeClass("nav-current-item");
$(nextItem).addClass("nav-current-item");
} else if(key === "up"){
...
}
如果您位于列表的顶部/底部并从列表中导航,该怎么办?在这种情况下,您可以不执行任何操作或定义要输入的其他区域。
<div id="maintabs" data-nav-type="list" data-nav-leave-down="anotherZone">
...
</div>
<div id="anotherZone" data-nav-type="list" data-nav-leave-up="maintabs">
...
</div>
所以我们来处理这个:
if(key === "down"){
var nextItem = $(currentZone).find("nav-current").next();
if($(next).size() === 0){
var nextZone = $(currentZone).data("nav-leave-down");
//navigate to the other zone
}
}