注意
此部分已弃用,不推荐用于新版本 应用。
请参阅DHIS2应用平台了解 构建 DHIS2 Web 应用程序的最新方法。
应用¶
打包的应用程序是 Open Web 应用 拥有所有资源(HTML、CSS、JavaScript、应用程序清单和 等等)包含在一个 zip 文件中。它可以上传到 DHIS2 在运行时直接通过用户界面安装。一个打包好的 app 是一个 ZIP 文件,带有 app 清单 在它的根 目录。清单必须命名为manifest.webapp。彻底 可以获得应用程序的描述 此处。
打包应用程序的目的¶
打包应用程序的目的是扩展 DHIS2 的 Web 界面, 无需修改DHIS2本身的源代码。一个系统 部署通常会有自定义和独特的要求。应用程序 为用户界面提供方便的扩展点。通过 应用程序,您可以补充和自定义 DHIS2 核心功能 以松散耦合和干净的方式定制解决方案。
应用程序无权直接与 DHIS2 Java API 交互。 相反,应用程序应该使用功能并与 利用 DHIS2 Web API 提供 DHIS2 服务和数据。
创建应用¶
DHIS2 应用程序是使用 HTML、JavaScript 和 CSS 文件构建的,类似 到任何其他网络应用程序。应用程序还需要一个名为的特殊文件 manifest.webapp 描述应用程序的内容。一个基本的 manifest.webapp 的示例如下所示:
{
“ version”:“ 0.1”,
“ name”:“我的应用”,
“ description”:“我的应用程序是打包的应用程序”,
“ launch_path”:“ /index.html”,
“ appType”:“ APP”,
“图标”:{
“ 16”:“ /img/icons/mortar-16.png”,
“ 48”:“ /img/icons/mortar-48.png”,
“ 128”:“ /img/icons/mortar-128.png”
},
“开发人员”:{
“ name”:“ Me”,
“ url”:“ http://me.com”
},
“ default_locale”:“ en”,
“活动”:{
“ dhis”:{
“ href”:“ *”,
“ namespace”:“ my-namespace”
}
},
“当局”:[
“ MY_APP_ADD_NEW”,
“ MY_APP_UPDATE”,
“ MY_APP_DELETE”
}
}
manifest.webapp 文件必须位于项目的根目录下。 其中属性包括:
-
icons→48 属性用于显示在 DHIS2 实例上安装的应用程序列表。
-
activities 属性是 dhis 特定的扩展,旨在 区分标准开放式 Web 应用程序和可扩展的应用程序 安装在 DHIS2 中。
-
authorities 属性包含 DHIS2 权限列表 它可用于限制用户对网站进行某些操作 当前应用程序。该列表将在应用程序期间加载到 DHIS2 中 安装过程并可在用户角色中选择 管理形式。
-
当 href 的 *** 值被转换为适当的 URL 时 该应用程序已上传并安装在 DHIS2 中。然后这个值可以是 应用程序的 JavaScript 和 HTML 文件使用它来调用 DHIS2 Web API 并识别 DHIS2 服务器的正确位置 已安装该应用程序的设备。为了澄清,*活动* 安装应用程序后,部分将类似于此:
“活动”:{
“ dhis”:{
“ href”:“ http://apps.dhis2.org/demo”,
“ namespace”:“ my-namespace”
}
}
- settings 属性是可选的,可以在仪表板上使用 小部件应用程序在小部件打开时禁止显示小部件标题 显示在仪表板上:
“设置”: {
“仪表板小部件”:{
“隐藏标题”:true
}
}
如果您的应用程序正在使用,则可以添加名称空间属性 dataStore 或 userDataStore api。添加命名空间属性时,仅 有权访问您的应用程序的用户可以更改 命名空间。命名空间只能以这种方式保留一次。如果另一个 应用程序尝试保留已在使用的命名空间,安装 其他应用程序将失败。
如果您有一组想要共享相同命名空间的应用程序, 但也希望保留它,应用程序的用户需要有 有权使用最初保留命名空间的应用程序。
注意
直到至少有一个键值对被创建后,命名空间才会被创建 存在于命名空间中。仅在清单中指定命名空间 限制访问并且不在命名空间中创建任何数据。
appType 属性指定应用程序将如何显示 DHIS2 实例。 appType 的可能值及其效果是 如下表所示。
表:应用程序类型
| 应用程序类型 | 描述 |
|---|---|
| 应用程序 | 将列在“应用程序”菜单中 |
| DASHBOARD_WIDGET | 可从仪表板上的搜索框获取,可以作为项目添加到任何仪表板上 |
| TRACKER_DASHBOARD_WIDGET | 可以嵌入跟踪器仪表板_(尚不支持此类型)_ |
| 资源 | 资源应用程序是可以由多个其他应用程序共享的包。除了应用程序管理应用程序之外,这些应用程序不会显示在 UI 的任何位置。 |
如果清单中未指定_appType_,系统将使用“APP” 默认情况下。
要将 JSON 结构读入 JavaScript,您可以使用常规 AJAX 请求并将 JSON 解析为对象。大多数 Javascript 库 提供一些支持,例如使用 jQuery,可以这样做:
$ .getJSON(“ manifest.webapp”,function(json){
var apiBaseUrl = json.activities.dhis.href +“ / api”;
});
该应用程序可以包含 HTML、JavaScript、CSS、图像和其他文件 可能需要支持它。文件结构可能看起来有些东西 像这样:
/
/manifest.webapp #manifest 文件(强制)
/css/ #css 样式表(可选)
/img/ #images(可选)
/js/ #javascripts(可选)
注意
只有
manifest.webapp文件必须放置在 根。由开发人员来组织 CSS、图像和 JavaScript 根据需要在应用程序内保存文件。
项目中的所有文件都应压缩为标准 zip 档案。请注意,manifest.webapp 文件必须位于根目录下 zip 存档的目录(存档中不包括父目录)。 然后可以将 zip 存档安装到 DHIS2 中,如您将在 下一节。