(翻译)Mozilla OS APP开发:Manifest常见问题

  1. 云栖社区>
  2. 博客>
  3. 正文

(翻译)Mozilla OS APP开发:Manifest常见问题

davelet 2012-11-18 21:26:00 浏览401
原文地址:https://marketplace.firefox.com/developers/docs/manifest_faq     Why does my app need an app manifest?为啥我的应用要有个manifest? 应用的manifest是一个含有必要的应用信息的文件,包括名字,作者,图标,简介等。这个文件对于用户和应用商店都要用到。更重要的是,它包括了一个应用要用到的Web API列表,比如地理定位。这就让用户在安装之前知道是否真的要安装。   Is the Open Web app manifest the same thing as the manifest used for Google Chrome extensions and installable web apps? Or the W3C Widgets manifest? Or the HTML5 cache manifest?介个manifest和Google Chrome 扩展的一样吗?还有W3C部件的呢,HTML5缓存的呢? 都不一样。Open Web app manifest可能最和Google的像。但是也有差别。我们希望Open Web apps manifest能够成为一个标准。   What is an origin?起点是啥啊? 一个应用的起点是协议,域名,和URL端口的整合。下面的都是:  下面这俩可是一样滴: 下面也是一样的起点:   Why do I have to host the app manifest at the same origin as my app?为啥我必须在我应用的相同起点用这个manifest作为我的应用? 假设只有你持有应用的manifest,也就是说你的用户可以自由安装你的应用,他们知道该应用是你的而不是别人的。用户应该有这种自由,无论他们从哪里安装,Firefox Marketplace还是其他商店还是你自己的网站。 但是假如manifest没有在相同起点作为应用本身,就不能阻止第三方根据你起点的内容直接做自己的应用,更惨的是第三方可以使用你的品牌欺骗用户安装,这样就能偷用户密码等。   Does this mean I can't embed images or JavaScript from other origins?是不这样的话我就不能嵌入其他起点的图片和js了? 可以的啊!起点限制仅仅针对HTML内容。图片啊神马的其他资源还是可以的。除非是应用的图标,这个必须是起点的。   Can I have more than one app at my origin?我的起点能有多个应用吗? 这不行,每个起点只能有一个。如果多个应用在一个起点,他们会形成一个网络沙盒:相互测试存储,执行Ajax请求,甚至盗用其他应用的特权API。这太危险了。 我们建议使用不同的子域名。比如spreadsheet.mycoolapps.comtexteditor.mycoolapps.com。更多信息可以看看 Adding a subdomain for an app. 很多资源和权限都限制给单一起点了。将应用和起点一一对应,我们能更方便地使用安全性限制。   Why not just upload the app manifest directly to the Firefox Marketplace?干啥不直接把manifest上传到Firefox Marketplace? 自己持有应用而仅仅把URL提供给Marketplace有如下好处:
  • 我们会定期扫描manifest的地址并检查更新,这避免了重复上传。
  • 我们会把起点的manifest和URL一起传递给用户设备,这样设备能检测出期望外的改变。
Why does my Web server have to use the proper HTTP Content-Type header when serving my app manifest?为啥我的Web服务器要使用特定的HTTP Content-Type头? 这样就限制了一个网站的用户无意的或者不正确的声明应用入口。 Should I use HTTPS to serve my app manifest?我能使用HTTPS不? 必须的嘛。我们希望Firefox Marketplace能要求每个应用都使用Web 并使用HTTPS来防止中间人攻击。如果你用了HTTPS,那你的每个页面也都要用的。 What if someone else submits my app to the Firefox Marketplace?要是别人上传了我的的应用咋办? 万一这种惨剧发生,就二话别说马上联系Marketplace support team.