发展周期(二):运行

原文链接:https://developer.chrome.com/native-client/devguide/devcycle/running

注意:已针对ChromeOS以外的平台公布了此处所述技术的弃用。
请访问我们的 迁移指南 了解详情。


运行

介绍

本文档介绍如何在开发期间运行Native Client应用程序。

PNaCl应用程序的工作流程是直接的,只会简单讨论。对于通过网络商店分发的NaCl应用程序,有许多选项,将对这些选项进行更深入的讨论。

便携式Native Client(PNaCl)应用程序

在Chrome 31及更高版本中启用了从开放网络运行PNaCl应用程序; 因此,在本地运行和测试此类应用程序无需特殊规定。使用PNaCl模块的应用程序可以与仅包含HTML,CSS和JavaScript的任何其他Web应用程序类似地进行测试。

为了更好地模拟生产环境,建议启动本地Web服务器来提供应用程序的文件。NaCl SDK内置了一个简单的本地服务器,本教程中描述了使用它运行PNaCl应用程序的过程。

Native Client应用程序和Chrome Web Store

在阅读有关如何运行Native Client应用程序之前,了解一下Native Client应用程序的分布方式非常重要。如分发您的应用程序中所述,目前必须通过Chrome网上应用店(CWS)分发Native Client应用程序。CWS中的应用程序是以下三种类型之一:

  • 一个托管的应用程序是您在选择的服务器上托管的应用程序。要将应用程序分发为托管应用程序,请将应用程序元数据上载到CWS。在Chrome App 文档页面上了解详情。
  • 一个打包的应用程序是在CWS主办,下载到用户的计算机上的应用程序。要将应用程序分发为打包的应用程序,请将整个应用程序(包括所有应用程序资产和元数据)上载到CWS。在Chrome App 文档页面上了解详情。
  • 扩展是一个封装的应用程序,其具有一个微小的UI组件(扩展部分一般用于扩展Chrome浏览器的功能)。要将应用程序分发为扩展,请将整个应用程序(包括所有应用程序资产和元数据)上载到CWS。详细了解Chrome扩展程序文档页面。

网上商店文档包含一个方便的指南,可帮助您选择使用哪个

每次要运行应用程序的新版本时,将文件打包并上传到Chrome Web Store显然不方便,但在开发过程中可以使用四种替代技术来运行应用程序。这些技术列于下表中,并在下面详细描述。每种技术都有一定的要求(NaCl标志,Web服务器和/或CWS元数据); 这些在下面的要求 部分进行了解释。

技术 需要Web服务器 需要CWS元数据

1.本地服务器

运行本地服务器,只需将浏览器指向服务器上的应用程序即可。

这种技术需要NaCl标志。

CHK  

2.打包的应用程序作为解压缩的扩展加载

将打包的应用程序作为解压扩展程序加载到Chrome中,并在没有服务器的情况下运行它。解压扩展是一个应用程序,其源和元数据文件位于开发计算机上的解压缩文件夹中。CWS清单文件(如下所述)必须指定local_path字段。

  CHK

3.作为解压扩展加载的托管应用程序

将托管应用程序作为解压扩展加载到Chrome中,然后从服务器(可以是本地服务器)运行它。CWS清单文件必须指定web_url字段。

CHK CHK

4.使用不受信任的测试人员的CWS应用程序

用于在CWS中分发打包或托管应用程序的标准技术。您可以将应用程序限制为受信任的测试人员。如果您的应用程序是托管应用程序,则此技术需要服务器。

  CHK

您在开发过程中使用哪种上述技术来运行应用程序主要取决于个人偏好(即,您更愿意启动本地服务器还是创建CWS元数据?)。作为一般规则,一旦您了解了计划如何分发应用程序,就应该在开发过程中使用相应的技术。选择分发选项取决于许多因素,例如应用程序大小,应用程序启动时间,托管成本,脱机功能等(有关详细信息,请参阅分发您的应用程序),但您无需决定如何在一开始就分发您的申请。

本文档的下两部分介绍了在开发过程中运行应用程序的几个先决条件,并解释了上表中列出的三个要求(NaCl标志,Web服务器和CWS元数据)。本文档的后续部分提供了有关如何使用这四种技术中每种技术的说明。

先决条件

浏览器和Pepper版本

在运行应用程序的新版本之前,请确保使用的是正确版本的Chrome。每个版本的Chrome都支持相应版本的Pepper API。您(和您的用户)必须使用等于或高于您的应用程序使用的Pepper API版本的Chrome版本。例如,如果您使用pepper_37捆绑包编译应用程序 ,则您的应用程序使用Pepper 37 API,您必须在Chrome 37或更高版本中运行该应用程序。要查看您正在使用的Chrome版本,请输入about:versionChrome地址栏。

Chrome缓存

Chrome积极地缓存资源。您应该在开发Native Client应用程序时禁用Chrome的缓存,以确保Chrome加载应用程序的新版本。按照教程中的说明进行操作。

要求

Native Client标志

对于从Chrome Web Store安装的应用程序,将自动启用Native Client。要为未从Chrome网上应用店安装的应用启用Native Client,您必须在Chrome中明确启用Native Client标记,如下所示:

  1. 键入about:flags在Chrome地址栏。
  2. 向下滚动到“Native Client”。
  3. 如果“Native Client”下面的链接显示“Disable”,则Native Client已启用,您无需执行任何其他操作。
  4. 如果“Native Client”下面的链接显示“Enable”:
    • 单击“启用”链接。
    • 单击屏幕底部的“立即重新启动”按钮。在重新启动浏览器之前,不会启用Native Client。重新启动Chrome后,所有浏览器窗口都会重新启动。

如果您启用了Native Client标记但仍无法从Chrome Web Store外部运行应用程序,则可能需要启用Native Client插件:

  1. 键入about:plugins在Chrome地址栏。
  2. 向下滚动到“Native Client”。
  3. 如果“Native Client”下面的链接显示“Enable”,请单击该链接以启用Native Client插件。启用Native Client插件后,您无需重新启动Chrome。

网络服务器

出于安全原因,Native Client应用程序必须来自服务器(您不能简单地将HTML文件拖到浏览器中)。Native Client SDK附带一个轻量级的Python Web服务器,您可以运行该服务器以在本地为您的应用程序提供服务。可以从Makefile调用服务器。以下是如何运行服务器:

$ cd examples
$ make serve

默认情况下,服务器侦听端口5103上的请求。您可以使用服务器examples在启动服务器的目录下运行大多数应用程序。例如,要flock在SDK中运行示例,请启动服务器并将浏览器指向http://localhost:5103/demo/flock/

某些应用程序需要Chrome的特殊标志,并且必须使用该make run命令运行 。有关更多详细信息,请参阅运行SDK示例

Chrome网上应用店元数据

在Chrome网上应用店中发布的应用必须附带CWS元数据; 具体而言,Chrome Web Store清单文件名为manifest.json,并且至少有一个图标。

以下是托管应用程序的CWS清单文件的示例:

{
  "name": "My NaCl App",
  "description": "Simple game implemented using Native Client",
  "version": "0.1",
  "icons": {
    "128": "icon128.png"
  },
  "app": {
    "urls": [
      "http://mysubdomain.example.com/"
    ],
    "launch": {
      "web_url": "http://mysubdomain.example.com/my_app_main_page.html"
    }
  }
}

对于打包的应用程序,您可以省略urls字段,并将web_url字段替换 为local_path字段,如下所示:

{
  "name": "My NaCl App",
  "description": "Simple game implemented using Native Client",
  "version": "0.1",
  "icons": {
    "16": "icon16.png",
    "128": "icon128.png"
  },
  "app": {
    "launch": {
      "local_path": "my_app_main_page.html"
    }
  }
}

您必须将该manifest.json文件放在与应用程序的主HTML页面相同的目录中。

如果您的应用程序没有图标,则可以使用以下图标作为占位符:

ICON16

ICON128

将图标放在与CWS清单文件相同的目录中。有关CWS清单文件和应用程序图标的更多信息,请参阅:

技术1:本地服务器

要从本地服务器运行应用程序:

  • 在Chrome中启用Native Client标记
  • 启动本地Web服务器
  • 将您的应用程序放在您正在使用的SDK包中的examples目录下(例如,在目录中pepper_35/examples/my_app)。
  • 通过在Chrome中键入其HTML文件的位置来访问本地服务器上的应用程序,例如:http://localhost:5103/my_app/my_app_main_page.html

注意:您不必使用本地Web服务器 - 如果已经有一台服务器,则可以使用其他服务器。您仍必须启用Native Client标志才能从服务器运行您的应用程序。

技术2:打包的应用程序作为解压缩的扩展加载

出于开发目的,Chrome允许您将打包的应用程序加载为解压缩的扩展。要将打包的应用程序作为解压缩的扩展加载和运行:

  1. 为您的应用程序创建Chrome Web Store清单文件和一个或多个图标。
    • 按照上面Chrome网上应用店元数据下的说明创建这些文件。
    • 请注意,CWS清单文件应包含local_path字段而不是web_url字段。
  2. 将CWS清单文件和应用程序图标放在与应用程序主HTML页面相同的目录中。
  3. 在Chrome中将应用程序加载为解压缩的扩展程序:
    • 点击菜单图标,菜单图标然后选择工具>扩展程序,在Chrome中打开扩展程序管理页面。
    • 选中Developer模式框,然后单击Load unpacked extension按钮: 扩展
    • 在出现的文件对话框中,选择您的应用程序目录。除非您收到错误对话框,否则您现在已在Chrome中安装了应用。
  4. 在Chrome中打开一个新标签页,然后点击页面底部的“ 应用”链接即可显示已安装的应用: 新制表应用
  5. 新安装的应用程序的图标应显示在“新标签页”页面上。单击图标以启动应用程序。

有关如何创建CWS元数据并将应用程序加载到Chrome中的其他信息(包括疑难解答信息),请参阅 Chrome Web Store教程:入门

另请参阅将SDK示例作为Chrome应用运行

技巧3:作为解压扩展加载的托管应用程序

出于开发目的,Chrome允许您将托管应用程序加载为解压缩的扩展程序。要将托管应用程序作为解压缩的扩展加载和运行:

  1. 启动Web服务器以服务您的应用程序。
  2. 将您的应用程序(.html,.nmf,.nexe,.css,.js,图像文件等)上传到服务器。
    • 如果您使用的是Native Client SDK附带的本地服务器,只需将您的应用程序放在examples您正在使用的SDK包中的目录下(例如,在目录中 pepper_37/examples/my_app)。
  3. 为您的应用程序创建Chrome Web Store清单文件和一个或多个图标。
    • 按照上面Chrome网上应用店元数据下的说明创建这些文件。
    • 在CWS清单文件中,该web_url字段应指定服务器上应用程序的位置。如果您使用SDK附带的本地服务器,该web_url字段应该类似于http://localhost:5103/my_app/my_app_main_page.html
  4. 将CWS清单文件和应用程序图标放在与应用程序主HTML页面相同的目录中。
  5. 在Chrome中将应用程序加载为解压缩的扩展程序:
    • 点击菜单图标,菜单图标然后选择工具>扩展程序,在Chrome中打开扩展程序管理页面。
    • 选中Developer模式框,然后单击Load unpacked extension按钮: 扩展
    • 在出现的文件对话框中,选择您的应用程序目录。除非您收到错误对话框,否则您现在已在Chrome中安装了应用。
  6. 在Chrome中打开一个新标签页,然后点击页面底部的“ 应用”链接即可显示已安装的应用: 新制表应用
  7. 新安装的应用程序的图标应显示在“新标签页”页面上。单击图标以启动应用程序。

有关如何创建CWS元数据并将应用程序加载到Chrome中的其他信息(包括疑难解答信息),请参阅 Chrome Web Store教程:入门

技巧4:Chrome Web Store应用程序与受信任的测试人员

当您准备更广泛地测试应用程序时,您可以将应用程序上传到Chrome网上应用店并让一些受信任的测试人员运行它。以下是如何操作:

  1. 创建发布应用程序所需的Chrome Web Store元数据:
    • 首先,创建Chrome网上应用店清单文件以及应用程序的一个或多个图标,如上面Chrome网络商店元数据中所述。请注意,打包的应用程序必须至少有两个图标(16x16图标和128x128图标)。
    • 在发布应用程序之前,还需要创建以下附加资产:
      • 截图(大小必须为640x400或1280x800)
      • 宣传图片称为“小瓷砖”(尺寸必须为440x280)
  2. 对于打包的应用程序
    • 使用CWS清单文件,应用程序图标和所有应用程序文件(.html,.nmf,.nexe,.css,.js,图像文件等)创建一个zip文件。
  3. 对于托管应用程序
    • 使用CWS清单文件和应用程序图标创建一个zip文件。
    • 将应用程序文件(.html,.nmf,.nexe,.css,.js,图像文件等)上载到托管应用程序的服务器。
    • 使用Google网站站长工具验证运行该应用程序的网站的所有权。
  4. 登录Chrome网上应用店开发人员信息中心
    • 首次登录时,请点击“添加新项目”按钮以显示Google Chrome网上应用店开发者协议。查看并接受协议,然后返回开发人员仪表板
  5. 单击开发人员仪表板底部的“编辑测试人员帐户”。
  6. 输入测试人员的一系列电子邮件地址(以逗号或空格分隔),然后单击“保存更改”按钮。
  7. 点击“添加新项”按钮,将您的应用添加到Chrome网上应用店。
  8. 单击“选择文件”按钮,然后选择您之前创建的zip文件。
  9. 点击“上传”按钮; 这会上传您的zip文件并打开“编辑项目”页面。
  10. 在“编辑项目”页面上编辑以下必填字段:
    • 上传应用程序图标。
    • 上传截图。
    • 上传小瓷砖。
    • 为您的应用程序选择一个类别(会计应用程序,动作游戏等)。
    • 选择适合您应用的语言。
  11. 如果您是Google网上论坛的所有者或管理员,则可以在“受信任的测试人员”字段中选择该组。
    • 您可能希望专门为测试人员创建Google网上论坛。将组添加到“受信任的测试人员”字段时,除了您添加到开发人员仪表板上“受信任的测试人员帐户”字段的个人之外,所有组成员都将能够测试该应用程序。
  12. 单击页面底部的“发布到测试帐户”按钮,然后单击“确定”。
  13. 出现一个页面,显示您的应用程序在Chrome网上应用店中的列表。复制URL并将其邮寄给您信任的测试人员。
    • 当您将应用程序发布到测试帐户时,应用程序的CWS列表仅对您和登录到这些帐户的人员可见。您的应用程序不会出现在搜索结果中,因此您需要为测试人员提供指向您的应用程序CWS列表的直接链接。用户将无法通过在CWS中搜索来找到该应用程序。

要在将应用程序发布到测试帐户后将其发布到全世界,您必须先取消发布该应用程序。有关其他信息,请参阅 发布应用程序,特别是发布到测试帐户

CC-By 3.0许可下提供的内容

posted @ 2018-07-24 08:34  SunkingYang  阅读(179)  评论(0编辑  收藏  举报