创建应用

更新时间:
2024-03-20
下载文档

创建应用

本章主要介绍如何使用 EdgerOS 扩展插件快速创建出爱智应用以及工程文件详解。

前提条件

完成 环境准备

操作步骤

本文以创建 Simple 应用为例。

  1. 打开 VSCode,单击插件 EDGEROS > 创建项目,选择所需的模板后单击应用

    创建项目

    默认模板源为 github,若模板无法加载请单击 VSCode 左下方的管理图标,选择设置 > 扩展 > EdgerOS,将 Template Source 切换为 Gitee,然后在创建项目页面单击刷新模板信息即可。

    创建项目创建项目
  2. 参考表 1 填写模板参数,填写完成后单击立即创建,完成应用创建。

    创建项目

    表 1 创建应用参数模板

    参数 说明 示例值
    项目名称项目的工程文件名称test
    包名软件包名称com.example.myapp
    项目描述简要说明项目用途测试项目
    保存路径项目在本地保存的路径-
    版本号应用的版本号0.0.1
    开发者 ID开发者 ID (从开发者网站个人信息查询)479ace68109611ecbf6b00163e163bca
    开发者名称开发者 ID 对应的用户名acoUsername
    开发者邮箱开发者的邮箱example@example.com
    开发者手机开发者的手机号123456789
    开发者传真开发者的传真号码-
    其他项:在新窗口打开项目是否在新的 VScode 窗口打开项目-

创建示例

  1. 以创建 Vue 应用为例,打开已创建的项目工程,在 public 目录下打开 index.html,修改其内容如下:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Hello EdgerOS</title>
        <script src="./vue/vue.min.js"></script>
      </head>
      <body>
        <h1>Hello EdgerOS</h1>
        <div id="app">
          Counter: {{ counter }}
        </div>
        <script>
          var app = new Vue({
            el: "#app",
            data() {
              return {
                counter: 0,
              };
            },
            mounted() {
              setInterval(() => this.counter++, 1000);
            },
          });
        </script>
      </body>
    </html>
    
  2. 修改完毕并保存后,一个最简单的 Vue 示例就创建完成了。

补充说明

文件结构介绍

创建应用项目后会在项目目录下生成一个文件夹(文件夹名称为项目名称),作为项目根目录。这个文件夹中已经包含了项目配置文件与示例页面的初始代码,主要结构如下:

├── assets          资源文件夹
├── routers         路由信息
├── public          静态页面文件
├── views           模板页面
├── eslintrc.json   eslint 配置文件
├── edgeros.json    edgeros 应用配置文件
├── main.js         程序入口
├── jsconfig.json   代码补全配置文件
└── package.json    依赖包的管理

edgeros.json 介绍

edgeros.json 示例

{
  "name": "default",
  "bundleid": "com.example.myapp",
  "test": "./test/index.js",
  "ignore_modules": ["@edgeros/eslint-plugin-jsre", "@edgeros/jsre-types"],
  "native_modules": ["dayjs", "lodash"],
  "ignore_path": ["./test/**", "./temp/**"],
  "assets": {
    "ico_big": "assets/big.png",
    "ico_small": "assets/small.png",
    "ico_widget": "assets/widget.png",
    "splash": "assets/splash.png"
  },
  "program": {
    "gss": false,
    "log": "console",
    "will": false,
    "reside": false,
    "mesv": "1.0.0",
    "resource": "public",
    "experimental": false,
    "doctype": ["image/*", "application/pdf"]
  },
  "loading": {
    "splash": "splash", 
    "background": "#000000",
    "animation": "enlarge"
  },
  "vendor": {
    "id": "479ace68109611ecbf6b00163e163bca",
    "name": "mycompany",
    "email": "example@example.com",
    "phone": "123456789",
    "fax": ""
  },
  "update": {
    "remove": ["public"]
  },
  "widget": [
    {
      "ico": "ico_widget",
      "name": "My Widget",
      "path": "widget",
      "rows": 2,
      "columns": 2,
      "category": "Demo"
    }
  ],
  "scripts":{
    "prebuild":"echo 'Hello EdgerOS'"
  }
}

edgeros.json 字段

字段类型描述用途
name字符串App 名称在爱智世界中展示时的应用名称
bundleid字符串App 的包名App 包名 (bundleid),建议使用反域名序列,例如 com.example.myapp
test字符串测试脚本的入口路径用以指定 EdgerAPP 项目中单测脚本文件的入口路径,例如 ./test/index.js
ignore_modules字符串数组module 名称过滤不参与打包的 module 名称
native_modules字符串数组JS 模块名称用以声明当前 APP 使用的非 EdgerOS 官方包,构建时会将这些包打进构建产物以正常使用。需使用者自行判断该包是否可以在 JSRE 中运行。一般原生的 JS 非 Node 模块都可以在 JSRE 中正常运行,例如 ['dayjs', 'lodash']

ignore_path

字段类型描述用途
ignore_path字符串数组字符串路径过滤不参与打包的文件路径

assets

字段类型描述用途注意事项
ico_big字符串App 必须的高清图标的资源路径暂未使用必须存在于软件包的根目录下且为 PNG/JPG/JPEG 格式
在深色模式和浅色模式下必须保持清晰
图标尺寸为 128*128(px) 至 512*512(px)
文件大小不超过 512 KB
ico_small字符串App 必须的小图标的资源路径用于 App 桌面图标的圆角矩形图片必须存在于软件包的根目录下且为 PNG/JPG/JPEG 格式
在深色模式和浅色模式下必须保持清晰
图标尺寸为 128*128(px) 至 512*512(px)
文件大小不超过 512 KB
ico_widget字符串可自定义名称的其它可引用的资源此处 ico_widget 定义 widget 中图标图片文件的路径-
splash字符串可自定义名称的其它可引用的资源此处 splash 定义欢迎页图片文件的路径格式为 PNG/JPG/JPEG,文件大小不超过 200 KB

program

字段类型默认值权限申请描述用途
gss选填,布尔值false-相同开发者 (vendor.id) 发布的所有 App 可通过 gss 通信,不同开发者的 App 通过 zone 隔离;系统服务的 zone 为空;App 无法创建空的 zone用于控制同一开发者 App 间的通信
log选填,字符串console-file:保存日志到文件;日志文件有两个,写满后自动滚动输出到另外一个
null:不输出任何日志
console:仅允许在开发调试阶段使用
用于控制日志的输出方式
will选填,布尔值false需要App 不会被立即杀死,以便完成自己的任务。在应用关闭时,该应用可以通过 Process 模块监听 will 事件,详细信息请参见 Process Events用于控制 App 的遗嘱权限
reside选填,布尔值false需要常驻内存权限,比如说提供 widget 的 App用于控制 App 的常驻内存权限
mesv必填,字符串N/AN/A字符串 Minimal Edger system version,即最低兼容的 EdgerOS 版本填写最低兼容的 EdgerOS 版本
resource必填,字符串publicN/Aresource 字段的值对应的文件夹用来存放前端缓存资源内容,该文件夹必须存在且内容不能为空EdgerOS 将提供预加载服务,加速应用启动速度
experimental选填,布尔值falseN/A表示该应用是否是一个实验室应用用于控制 App 是否为一个实验室应用
doctype选填,字符串数组-N/A表示该应用是否支持处理指定类型的文档用于判断该应用是否能够处理其他应用分享的文档

loading

字段类型描述用途
splash字符串splash 引用 assets 字段中的资源App 加载首屏的图片文件,引用 assets 字段内定义资源文件的字段名
background字符串#000000 格式的颜色编码值App 加载首屏的图片文件的背景色
animation字符串enlarge 动画效果:扩大App 加载完成后,首屏图片的退出动画效果

update

类型字段可选字段描述用途
数组remove-自动清理目录应用升级时,系统自动清理的目录集合

widget

字段类型字段说明描述用途
ico字符串必填widget 图标,例如:ico_widgetwidget 图标,引用 assets 字段内定义的资源文件
name字符串必填widget 显示名称用于记录 widget 图标名称
path字符串必填widget page URL 路径,最终会与 App 的 hostname 拼接成完整 URL用于记录 widget 的加载路径
rows数字必填widget 占用行数用于记录 widget 占用桌面栅格的行数
columns数字必填widget 占用列数用于记录 widget 占用桌面栅格的列数
category字符串可选widget 所述分类, 多个 widget 可属于一个组,EdgerOS 会预定义一些分类,没有指定分类则分类名以 name 代替记录 widget 的分类,可以从 EdgerOS 的分类里选择,如果没有指定分类则分类名以 name 代替

vendor

字段类型字段说明描述用途
id字符串必填系统为开发者生成的 ID系统为开发者生成的 ID,可以在爱智开发者平台的个人信息中查看,例如:479ace68109611ecbf6b00163e163bca
name字符串必填软件开发者的名称用于记录 App 开发者的用户名或者开发者的名称
email字符串必填软件开发者的电子邮件地址用于记录 App 开发者的电子邮件地址
phone字符串可选软件开发者的联系电话用于记录 App 开发者的联系电话
fax字符串可选软件开发者的传真号码用于记录 App 开发者的传真号码

scripts

字段类型字段说明描述用途
prebuild字符串可选应用构建时前置操作打包构建爱智应用时,可配置该项完成指定 shell 指令,如构建前端,删除冗余文件等操作
文档内容是否对您有所帮助?
有帮助
没帮助