ARChon 分析之五 : chrome-app的开发方法

官方文档在这里:
https://developer.chrome.com/apps/first_app

使用流程

  1. 在Chrome浏览器地址栏目 打开 chrome://extensions -> 打开 Develop mode —> 选择 Load unpacked -> 选中项目文件夹
  2. 在Chrome浏览器地址栏目 打开 chrome://apps -> 打开项目图标便可体验刚写的apps

项目文件

项目文件夹的内容的根目录下 必须 有一个 manifest.json 内容可以是这样的。

{
  "name": "Looks",
  "description": "Yeshen's test app.",
  "version": "0.1",
  "manifest_version": 2,
  "app": {
    "background": {
      "scripts": ["main.js"]
    }
  }
}

manifest 的规则见 -> manifest

其中 app/background/scripts 中可以执行js脚本。

main.js

chrome.app.runtime.onLaunched.addListener(function () {
  chrome.app.window.create('index.html', {
    'outerBounds': {
      width: 500,
      height: 300
    }
  })
})

index.html


<html>
    <head>
      <meta charset="utf-8">
      <title>Lookstitle>
    head>
    <body>
      <h1>Hi thereh1>
    body>
html>

文档与概念

chrome浏览器为这个脚本提供了程序运行环境:chrome.app.runtime 、chrome.app.window 窗口运用环境。

在使用流程2中,点击项目图标,就会回调 chrome.app.runtime.onLaunched 中注册的方法,如果chrome浏览器异常关闭,重新打开的时候,就会调用 chrome.app.runtime.onRestarted 中注册的方法。

chrome.app.window 做了对系统窗口的抽象。提供了全局获取窗口数据的方法:

  • create
  • current
  • getAll
  • get
  • canSetVisibleOnAllWorkspaces

全局窗口生命周期管理

  • onBoundsChanged
  • onClosed
  • onFullscreened
  • onMaximized
  • onMinimized
  • onRestored

对于每一个窗口(AppWindow),可以有更细致的管理:

  • focus
  • fullscreen
  • isFullscreen
  • minimize
  • isMinimized
  • maximize
  • isMaximized
  • restore
  • moveTo
  • resizeTo
  • drawAttention
  • clearAttention
  • close
  • show
  • hide
  • getBounds
  • setBounds
  • isAlwaysOnTop
  • setAlwaysOnTop
  • setVisibleOnAllWorkspaces
  • contentWindow
  • id
  • innerBounds
  • outerBounds

对照着方法约定来看,比android多了几个在层叠窗口下需要处理的放大缩小的设计。

窗口创建的第一个参数是本地文件地址,可以猜测,窗口的内容其实是一块webview的画版,它会去渲染webview中的内容。

其他

  1. 挺好的东西,可惜Chrome将取消对Windows,Mac和Linux上Chrome应用的支持。
  2. 如果你需要demo来熟悉的话 :

hello-world

玩~

你可能感兴趣的:(Android)