离线包

离线包工程的开发也就是模块的开发,类型可以是H5,jsn或者小程序。三个类型的效果对比可以在Lightview中查看。总体开发思路是:

  1. 模块开发完毕。
  2. 在light平台创建一个APP(如果已创建,忽略此步)。
  3. 打模块的包,并上传到light平台创建好的APP下的离线包中,得到一个离线包的虚拟域名地址main.vhost.light.com
  4. 新建一个APP开发工程,将上面拿到的离线包地址配置在APP中,这里注意虚拟域名地址main.vhost.light.com后面必须加上页面的地址app.native.js(JSN工程) 或者 index.html(H5工程),否则将无法正常访问离线包。如:main.vhost.light.com/index.html或main.vhost.light.com/app.native.js
  5. 打APP的包,并在light平台创建好的APP下进行应用集成,集成好后,下载查看即可。

更详细的开发流程请看下面的介绍:

第一步 开发离线包工程

在正式开发之前,你的电脑上需要安装lighting开发工具,有2种选择,命令行版本 或者 vscode插件版本,开发者可以按需选择使用。

这里以使用命令行版本工具为例,创建一个模块工程:

使用命令 light create -t jsn 可创建一个JSN类型的模块工程
使用命令 light create -t vue 可创建一个H5类型的模块工程
使用命令 light create -t miniapp 可创建一个小程序的模块工程

开发过程中需要注意:

  1. 离线包开发过程中数据的存取要使用light-sdk中的readData和writeData方法,参考文档 light-sdk API文档
  2. 资源路径不能是绝对路径,必须是相对于index.html的路径,如background: url(../images/font-active.png)
  3. JSN工程开发过程中,只能使用特定的内置组件内置模块 和light提供的lighting-ui组件,样式使用也有限制,详情参见JSN工程开发注意事项
  4. 小程序开发过程中,不支持DOM API 和 BOM API,限制相对较少。详细介绍参见小程序开发指南

第二步 将离线包发布到light平台

1.模块开发好后,在根目录下执行 light release -p打包,可以得到一个模块的资源包。

2.然后打开平台的APP管理下的离线包发布,找到列表中想要发布的APP应用(若没有可以去应用管理界面创建APP),点击进入 离线包发布页面 ,点“+”按钮添加一个离线包,然后再点“添加更新包”按钮将打好的模块资源包上传,最后点击创建发布任务发布离线包即可。

3.鼠标滑动到左侧离线包列表中对应的离线包,点击离线包基本信息按钮,弹出离线包信息弹框,弹框中的虚拟域名地址main.vhost.light.com就是可以配置在APP中使用的地址,见下一步说明。

第三步 获取APP的配置包

  1. 使用命令 light create -t app 创建一个APP工程,在工程根目录下native/config.js文件中配置好logo、启动图、菜单栏、导航栏、应用视图、及其他可选的配置项。可参考LightAPP配置

其中应用视图配置中的url,配置上一步中上传到平台的离线包的虚拟域名地址jsnn.vhost.light.com/app.native.js。(这里以JSN工程为例)

module.exports = {
views:{
"main":{
url:"jsnn.vhost.light.com/app.native.js",
navBar:{
title:"",
backgroundColor:"",
titleColor:""
}
}
}
};
  1. 在APP工程的project.json中配置在平台上创建好的APP的LightID(如果不需要在APP中进行离线包的预置,就不用配置),如下图所示:

  1. LIGHT_LICENSE授权文件接入,在light平台上下载LIGHT_LICENSE文件放在工程根目录下native文件夹中,详情参考开发接入
  2. 配置成功后在APP工程的根目录下执行light release -p 打包,打包成功后可得到APP的配置包,配置包可用于集成APK安装包。

第四步 APP集成

进入平台APP管理-应用集成页面,上传第三步中打包好的APP配置包,集成成功后可以进行APP的预览或者直接下载安装包。具体上传步骤参考平台操作手册-应用集成-APP集成

注意事项

离线包不能访问的时候,请检查是否有下列情况:

  1. 虚拟域名地址jsnn.vhost.light.com后面必须加上页面的地址app.native.js(JSN工程) 或者 index.html(H5工程),否则将无法正常访问。如:jsnn.vhost.light.com/index.html。
  2. 离线包发布的APP和应用集成的APP必须是同一个,否则将无法正常访问离线包
  3. 应用集成-发起集成弹框中填写的 版本号必须在 第二步中添加更新包时选择的 版本范围内

离线包开发注意事项

  1. 离线包开发过程中数据的存取要使用light-sdk中的readData和writeData方法
let params={
"key":"test",
"value":{"test":"test"},
"scope":"scope1"
};
LightSDK.native.writeData(params);
let params={
"key":"test",
"scope":"scope1"
}
LightSDK.native.readData(params,cb);

详细的使用方法参考文档 light-sdk API文档

  1. 资源路径不能是绝对路径,必须是相对于index.html的路径

如现在需要引用工程根目录下images文件夹下的font-active.png,代码如下:

.choose-font:hover{ background: url(../images/font-active.png);}

而不能是:

.choose-font:hover{ background: url(/images/font-active.png);}