Benjamin

静以修身,俭以养德,非澹薄无以明志,非宁静无以致远。
随笔 - 397, 文章 - 0, 评论 - 196, 引用 - 0
数据加载中……

谷歌应用商店使用说明文档

一、离线应用程序(Packaged Apps):
⦁ 创建manifest.json文件,文件格式如下:
 {
  "name": "My Awesome Racing Game",
   "description": "Enter a world where a Vanagon can beat a Maserati",
   "version": "1",
   "app": {
     "launch": {
       "local_path": "main.html"
     }
   },
   "icons": {
     "16": "icon_16.png",
     "128": "icon_128.png"
   }
 }
Name:要发布的web应用的名称
Description:web应用的注释、说明
Version:版本号
   Launch:应用程序的启动页
icon:图标
上面只是manifest.json文件的基本项,我们在Packaged apps这个方式,一般使用上面几项就足够了;
⦁ 准备好要发布的web app;
⦁ 准备好相应的png图片
⦁ 将上面的几个文件放到一个文件夹下,打成zip包,上传谷歌的应用商店即可,如下图所示:
 
⦁ 上传图标
  
屏幕截图、宣传图片必须的
⦁ 填写详细说明和类别
  
 
⦁ 发布应用
 
点击发布更改,就发布应用了
⦁ 注意:如果需要更改应用的zip包,点击开发人员信息中的选中应用的修改按钮
 ,每一次上传的版本号必须比上一次的大
二、托管应用程序
1、创建manifest.json文件,文件格式如下
{
  "name": "Google Mail",
  "description": "Read your gmail",
  "version": "1",
  "app": {
    "urls": [
      "*://mail.google.com/mail/",
      "*://www.google.com/mail/"
    ],
    "launch": {
      "web_url": "http://mail.google.com/mail/"
    }
  },
  "icons
    "128": "icon_128.png"
  },
  "permissions": [
    "unlimitedStorage",
    "notifications"
  ]
}
 Urls:这里是必须通过谷歌验证过的网站,如果http和https的url都通过了谷歌的验证,在url的前面加通配符*;
其他的上面离线应用程序类似,图标是128的png,必须有;
Permissions权限字段:指定html5程序的权限;
2、创建128*128的png图片
3、将上面的两个文件,放到一个文件夹中,打包(zip包),并上传到要创建的应用程序页面
   并发布;
⦁ 创建rcx文件并更新到谷歌应用商店,步骤如下:
在Chrome中,扩展管理页面,点击扳手图标   ,然后选择“ 工具“>”扩展程序“;
单击开发人员模式,如下图所示
 
点击“载入正在开发的扩展程序”,出现文件选择框,将刚才打包的文件选中
分别点击打包扩展程序和立即更新扩展程序;
⦁ 如何通过google的验证:通过“google网站站长工具”来完成,如果没有通过,按照谷歌的提示下载一个html到网站上就可以了

三、Manifest文件详解
  {
  // Required
  "name": "My Extension",
  "version": "versionString",
  "manifest_version": 2,
  // Recommended
  "description": "A plain text description",
  "icons": { ... },
  "default_locale": "en",
  // Pick one (or none)
  "browser_action": {...},
  "page_action": {...},
  "theme": {...},
  "app": {...},
  // Add any of these that you need
  "background": {...},
  "chrome_url_overrides": {...},
  "content_scripts": [...],
  "content_security_policy": "policyString",
  "file_browser_handlers": [...],
  "homepage_url": "http://path/to/homepage",
  "incognito": "spanning" or "split",
  "intents": {...}
  "key": "publicKey",
  "minimum_chrome_version": "versionString",
  "nacl_modules": [...],
  "offline_enabled": true,
  "omnibox": { "keyword": "aString" },
  "options_page": "aFile.html",
  "permissions": [...],
  "plugins": [...],
  "requirements": {...},
  "update_url": "http://path/to/updateInfo.xml",
  "web_accessible_resources": [...]
}

homepage_url:扩展链接,如果想将这个应用放到自己的网站上可以使用此项
intents:指定http://webintents.org/share “两个动作动词“的处理程序。
{
  "name": "test",
  "version": "1",
  "intents": {
    "http://webintents.org/share": [
      {
        "type": ["text/uri-list"],
        "href": "/services/sharelink.html",
        "title" : "Sample Link Sharing Intent",
        "disposition" : "inline"
      },
      {
        "type": ["image/*"],
        "href": "/services/shareimage.html",
        "title" : "Sample Image Sharing Intent",
        "disposition" : "window"
      }
    ]
  } 
}
Herf表示页面处理
Key: 此值可用于控制的扩展,应用程序,或主题的唯一的ID,当它被装在开发过程中。
nacl_modules:MIME类型映射到本地客户端模块处理每种类型的一个或多个;下面的代码片段中的粗体代码注册为OpenOffice的电子表格MIME类型的内容处理程序的本机客户端模块。
           {
             "name": "Native Client OpenOffice Spreadsheet Viewer",
             "version": "0.1",
             "description": "Open OpenOffice spreadsheets, right in your browser.",
             "nacl_modules": [{
             "path": "OpenOfficeViewer.nmf",
             "mime_type": "application/vnd.oasis.opendocument.spreadsheet"
           }]
}
每个MIME类型可以与只有一个。NMF文件,但单一的。NMF文件可能处理多个MIME类型。以下示例显示了一个带有两个扩展。NMF处理三个MIME类型的文件。
{
  "name": "Spreadsheet Viewer",
  "version": "0.1",
  "description": "Open OpenOffice and Excel spreadsheets, right in your browser.",
  "nacl_modules": [{
    "path": "OpenOfficeViewer.nmf",
    "mime_type": "application/vnd.oasis.opendocument.spreadsheet"
  },
  {
    "path": "OpenOfficeViewer.nmf",
    "mime_type": "application/vnd.oasis.opendocument.spreadsheet-template"
  },
  {
    "path": "ExcelViewer.nmf",
    "mime_type": "application/excel"
  }]
}
offline_enabled:如果设置为true,apps将突显在新的标签页
permissions:应用可能会使用的权限,格式:字符串(匹配模式),一个多个主机访问列表
   这里是一个为一个扩展的manifest文件的权限部分的例子:
   "permissions": [
      "tabs",       //标签
      "bookmarks", //书签
     "http://www.blogger.com/",
     "http://*.google.com/",
     "unlimitedStorage"  //无限制
],
      下表是常用的权限说明:
match pattern 指定一个主机权限。如果扩展要交互的网页上运行的代码。许多扩展功能,如 跨域的XMLHttpRequest, 编程注射的内容脚本,饼干API的 需要主机的权限。有关语法的细节,请参阅 匹配模式。
"background"(背景) 浏览器运行不可见,用户只要登录到自己的电脑前,用户启动浏览器。“背景”的权限也使得浏览器继续运行(即使其最后一个窗口被关闭),直到用户明确退出浏览器。
通常在托管应用程序中使用
"bookmarks"(书签) 如果需要延长使用 chrome.bookmarks模块。
"chrome://favicon/" 如果扩展使用“chrome:/ /的favicon / URL “的机制显示页面的favicon。例如,显示http://www.google.com/的favicon,申请使用“chrome:/ / favicon /”权限和使用代码如下:
<img src="chrome://favicon/http://www.google.com/">

"clipboardWrite"(粘贴) 如果扩展使用 document.execCommand(“粘贴”) 。
“clipboardWrite” 表示应用程序或扩展使用 document.execCommand('复制')或 document.execCommand('剪切') 。一般在托管app中使用
" contentSettings " 如果需要延长使用 chrome.contentSettings模块。
“contextMenus” 如果需要扩展使用 chrome.contextMenus的模块。
"cookies" 如果需要延长使用 chrome.cookies模块。
"experimental" 需要扩展使用 chrome.experimental.* APIs.
"fileBrowserHandler" 需要扩展使用 fileBrowserhandler的模块。
"geolocation" 允许延期使用HTML5的 地理位置API, 不提示用户许可的情况下。
"history" 需要扩展使用 chrome.history的模块
"idle" 需要扩展使用 chrome.idle的模块。
"management" 需要扩展使用 chrome.management的模块。
"notifications" 允许延期使用建议HTML5的 通知API, 而不调用权限的方法(如的checkPermission() )。
"privacy" 允许延期使用建议HTML5的 通知API, 而不调用权限的方法(如的checkPermission() )。
"proxy" 需要如果扩展使用 chrome.proxy的模块
"tabs" 如果扩展使用的 chrome.tabs或 chrome.windows模块。
"tts" 如果需要扩展使用 chrome.tts的模块
"ttsEngine" 如果需要延长使用 chrome.ttsEngine模块。
"unlimitedStorage" 储HTML5的客户端的数据,如数据库和本地存储文件,提供了一个无限的配额。如果没有此权限,扩展被限制为5 MB的本地存储。
 此权限仅适用于网页的SQL数据库和应用程序缓存(见问题58985)。此外,它并不目前工作通配符子域,如 htt
"webNavigation" 需要扩展使用 chrome.webNavigation的模块。
"webRequest" 需要扩展使用 chrome.webRequest的模块。
"webRequestBlocking" 扩展使用的chrome.webRequest,阻塞需要 。
Requirements:这里唯一支持的是“3D”,这是指GPU硬件加速
如下面的例子:
            "requirements": {
      "3D": {
       "features": ["css3d", "webgl"]
      }
}
css3d指的是 CSS 3D变换规格,WebGLl是WebGL的API。
Version:0和65535
下面是有效版本:
⦁ “版本”:“1”
⦁ “版本”:“1.0”
⦁ “版本”:“2.10.2”
⦁ “版本”:“3.1.2.4567”
manifest_version:指定的manifest文件格式的版本
对于Chrome 18,这个应该是2
web_accessible_resources:字符串,指定路径,预计将在网页中使用的资源
例如:一个扩展,内容脚本注入的打算建立一些自定义接口example.com(建立白名单资源),该接口要求(图像,图标,样式,脚本等)如下:
{
  ...
  "web_accessible_resources": [
    "images/my-awesome-image1.png",
    "images/my-amazing-icon1.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js"
  ],
  这些资源将可以通过网页的URL中 chrome-extension://[PACKAGE ID]/[PATH],
Default Availablility:在manifest_version 2或以上的版本中,默认情况下资源不存在的时候,必须通过使用此属性的白名单
资源manifest_version 1是默认提供的,但如果你不设置此属性,然后将所有白名单资源作为一个完整的列表处理。未列出的资源将被阻止。

 

 

 

posted on 2012-11-15 23:12 Benjamin 阅读(1617) 评论(0)  编辑 收藏 引用 所属分类: 杂谈


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理