javascript - 如何在没有 IDE 的情况下构建和部署三星 SmartTV 应用程序(例如 : on Linux)

标签 javascript linux samsung-smart-tv

问题:

我想尝试使用三星 SmartTV SDK 2.5 构建一个概念验证应用程序(我有一台 2011 年型号的电视 - UA55D8000)。

不幸的是,SDK 有两种似乎只能在 Microsoft Windows 上运行的版本。这很奇怪,因为没有理由应该是这样:电视本身运行 Linux,应用程序是用 JavaScript 编写的。

这带来了两个问题:

  1. 因为我家里没有 Microsoft Windows,所以我不能使用 SDK 附带的构建环境(也不能使用电视模拟器)。 (SDK 文件本身就是 JavaScript)

  2. 即使我可以使用 Windows,如果不使用传统的构建工具(例如:Make、Ant、Autotools 等),也很难自动构建和测试应用程序

如何在 Linux 上构建三星智能电视应用程序? (即:不使用 SDK 附带的基于 Windows 的构建工具)


到目前为止我的发现:

据我所知,JavaScript 模式应用程序只是一个 zip 文件,其中包含一个 XML 配置文件、一个或多个 JavaScript 文件(包括为平台 SDK 功能提供的 JavaScript 接口(interface)库),以及任何所需的 Assets (HTML、图像、等)。

此外,据我所知,部署涉及将 zip 文件和 XML list 文件放置在电视可访问的 Web 服务器网络上,在电视上以“开发”身份登录并将应用程序“同步”到已安装的电视上的应用程序。


有人能给我指出完整部署要求和应用程序包要求的来源吗?或者只是一个工作样本?

最佳答案

我在我的 Ubuntu 机器上设置开发环境取得了相当大的成功,我想在这里分享我的方法给任何想要做同样事情的人。此答案旨在独立于平台,因此相同的建议应适用于任何成熟的操作系统。

简介

首先,问题关于应用程序结构的假设是正确的。 JavaScript 应用程序由以下几项组成:

  • config.xml,一个定义各种设置和部署信息的简单配置文件。见 Writing the config.xml File在官方开发者网站上。
  • widget.info,一个很小的文件,只有几行,用于定义应用程序主体的不透明度。全屏应用程序可能不需要这样做。
  • index.html,您的应用程序的主 HTML 文件。
  • 图像、声音和其他资源

您可以使用自己喜欢的编辑器编写这些文件。我很乐意为我的 JS 和 CSS 使用带有 linting 插件的 vim

测试

从 SDK 4.0 版开始,模拟器的 Linux 版本现已推出。这允许您测试您的应用程序,因为它们会出现在 2011-2013 年的电视上。对于较旧的电视,您可以在 Wine 中运行 SDK 1.5 的模拟器,但属于 SDK 2.0 和更新版本的模拟器 will not run .

可以在 Windows 虚拟机中运行模拟器,并且通过一些技巧,您可以让模拟器使用您自己的应用程序文件夹来查找应用程序。这包括与您的虚拟机共享您的开发文件夹,然后创建指向这些文件夹的符号链接(symbolic link),替换 SDK 安装目录中的“apps”文件夹。标题为 Your Windows IDE sucks? Replace it with Your Favorite Editor on the Mac! 的文章中提供了此过程的快速概述。

部署

三星智能电视具有内置的开发者帐户,可让您从计算机发送应用程序,以便在电视本身上进行实时测试。您输入部署服务器的 IP 地址,电视将在该服务器上查找名为 widgetlist.xml 的文件。格式示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<rsp stat="ok">
  <list>
    <widget id="MyTVApp">
      <title>MyTVApp</title>
      <compression size="3383543" type="zip"/>
      <description>A basic application for Samsung TVs</description>
      <download>http://192.168.1.83/Widget/MyTVApp_0.1_America_20120709.zip</download>
    </widget>
  </list>
</rsp>

之后,它将使用 <download> 中的 URL 下载列出的每个应用程序标签。您所要做的就是压缩文件,相应地修改 widgetlist.xml 并确保这两个文件都托管在您机器上运行的 Web 服务器中。你可以使用 Apache、lighttpd 或任何东西。我有一个小型 node.js/connect 应用程序,它将根据我在标记为 deploy 的目录中的 zip 文件动态构建 widgetlist.xml

所以你有它。没有 Windows,三星智能电视应用程序的开发并非不可能。事实上,有很多可用的选项。万岁!

关于javascript - 如何在没有 IDE 的情况下构建和部署三星 SmartTV 应用程序(例如 : on Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12766653/

相关文章:

angularjs - Cordova/ionic 智能电视应用

javascript - 如何在智能电视上测试 HTML5 和 Javascript 应用程序?

javascript - 下拉菜单不会在第二次单击时关闭

javascript - 使用 Javascript、PHP 和 AJAX 输出 SQL 查询

linux - 在 Linux 中选择 csv 中的缩写

c - 如何从用户空间使用 C 在 Linux 中获取驱动器标签

c - 调试多线程程序

javascript - 如何在三星智能电视中创建表单

javascript - 使用 jQuery 从特定类获取 Input[type=(type)] 的值

javascript - Bootstrap : Prevent Scrolling in LG or larger, 启用 MD 或更小的滚动