HaaS UI基础教学九:JSAPI应用包管理

简介: Package JSAPI是HaaS UI提供的一个轻量级应用包管理接口,特别适用于管理小程序应用包的安装信息。

名词解释

AliOS Things: 阿里云智能IoT团队自研的物联网操作系统

HaaS:全称是Hardware as a Service,阿里云智能IoT团队基于AliOS Things系统推出的硬件即服务

HaaS UI:全称是Hardware as a Service User Interface,是源自AliOS Things操作系统上的一套应用&图形解决方案,支持C/C++和 JS两种开发语言

JSAPI:  全称是JavaScript Application Programming Interface, 即JS应用程序编程接口,实现JS前端和系统层各个模块的接口调用,类似android系统的JNI

 

1、Package JSAPI简介

Package JSAPI是HaaS UI提供的一个轻量级应用包管理接口,特别适用于管理小程序应用包的安装信息。

例如用户想要获取当前安装的所有小程序应用的信息,或者想要监听小程序应用包的安装和卸载,就可以通过Package JSAPI来完成。

Package JSAPI的作用域为当前小程序应用,包含的接口如下:

接口宿主

JSAPI

调用方法

接口功能

package

getInstalledAppInfo

$falcon.jsapi.pm.getInstalledAppInfo

应用包管理

packageInstalled

$falcon.jsapi.pm.on("packageInstalled", param => {})

$falcon.jsapi.pm.off("packageInstalled", param => {})

packageUninstalled

$falcon.jsapi.pm.on("packageUnInstalled", param => {})

$falcon.jsapi.pm.off("packageUninstalled", param => {})

1.1、package.getInstalledAppInfo

package.getInstalledAppInfo 是获取本地已安装的小程序应用的 API。

调用 package.getInstalledAppInfo 成功后,可查看所有本地已安装的小程序的信息。

入参

Object 类型,属性如下:

属性

类型

必填

描述

-

-

-

callback

Function

回调函数,包含result参数。

示例代码


  1. // sync
  2. const pm = $falcon.jsapi.pm;
  3.   pm.getInstalledAppInfo({
  4.     }, result => {
  5.     result && !result.error && console.log(result);
  6.     });
  7. }
  8. // async
  9. const pm = $falcon.jsapi.pm;
  10.     let result = await pm.getInstalledAppInfo({
  11. });         
  12. result && !result.error && console.log(result);

success 回调函数

属性

类型

描述

appList

List

文件列表。

App 对象属性

属性

类型

描述

appId

String

小程序应用的 id。

name

String

小程序应用的名称。

version

String

小程序应用的版本。

icon

String

小程序应用图标的路径。

 

1.2、falcon.jsapi.pm.on

falcon.jsapi.pm.on 是打开监听小程序安装和卸载事件的 API。

入参
 

属性

类型

必填

描述

事件名

String

监听事件的名称。

callback

Function

回调函数。

 

示例代码

falcon.jsapi.pm.on("packageInstalled", param => {}) 是监听小程序被安装的 API。如果某个小程序被安装,将打印被安装小程序的appId。


 
  1. const pm = $falcon.jsapi.pm;
  2. pm.on( "packageInstalled", param => {})

falcon.jsapi.pm.on("packageUninstalled", param => {}) 是监听小程序被卸载的 API。如果某个小程序被卸载,将打印被卸载小程序的appId。


  
  1. const pm = $falcon.jsapi.pm;
  2. pm.on( "packageUninstalled", param => {})

 

1.3、falcon.jsapi.pm.off

falcon.jsapi.pm.off 是关闭监听小程序安装和卸载事件的 API。

入参
 

属性

类型

必填

描述

事件名

String

监听事件的名称。

callback

Function

回调函数。

 

示例代码

falcon.jsapi.pm.off("packageInstalled", param => {}) 将关闭监听小程序的卸载事件。


   
  1. const pm = $falcon.jsapi.pm;
  2. pm.off( "packageInstalled", param => {})

falcon.jsapi.pm.off("packageUninstalled", param => {}) 将关闭监听小程序的安装事件。


    
  1. const pm = $falcon.jsapi.pm;
  2. pm.off( "packageUninstalled", param => {})

 

2、Package JSAPI调用示例

2.1、获取应用列表

通过调用package.getInstalledAppInfo({}),即可获取当前所有已安装的小程序的列表,每个小程序的信息包含:

  • 小程序的名称
  • 小程序的id
  • 小程序的版本

 

2.2、监听小程序安装

通过调用pm.on("packageInstalled", param => {}),即可监听某个小程序的安装。当小程序被安装时,将打印该小程序的id。

 

2.3、关闭监听小程序安装

通过调用pm.off("packageInstalled", param => {}),即可关闭监听某个小程序的安装。

 

2.4、监听小程序卸载

通过调用pm.on("packageUninstalled", param => {}),即可监听某个小程序的卸载。当小程序被卸载时,将打印该小程序的id。

 

2.5、 关闭监听小程序卸载

通过调用pm.off("packageUninstalled", param => {}),即可关闭监听某个小程序的卸载。

 

3、相关学习文章

1.HaaS UI 免费开源的轻量级IoT小程序解决方案   https://blog.csdn.net/HaaSTech/article/details/112306194

2.HaaS UI小程序解决方案基础教学之一: 快速开始  https://blog.csdn.net/HaaSTech/article/details/112306194

3.HaaS UI小程序解决方案基础教学之二: 搭建第一个UI页面

https://blog.csdn.net/HaaSTech/article/details/112674174

4.HaaS UI小程序解决方案基础教学之三: JSAPI页面导航

https://blog.csdn.net/HaaSTech/article/details/112681511

5.HaaS UI小程序解决方案基础教学之四: JSAPI数据存储

https://blog.csdn.net/HaaSTech/article/details/112766128

6.HaaS UI小程序解决方案基础教学之五: JSAPI文件管理

https://blog.csdn.net/HaaSTech/article/details/112766128

 

开发者技术支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

相关文章
|
1月前
|
存储 JavaScript 开发者
探索鸿蒙新世界:ArkUI框架实战指南,解锁HarmonyOS应用UI设计的无限可能!
【10月更文挑战第19天】ArkUI框架是华为鸿蒙系统中用于开发用户界面的核心工具,支持ArkTS和eTS两种开发语言。本文介绍了ArkUI的基本概念、组件使用、布局管理和状态管理,通过示例代码帮助开发者轻松构建美观、高效的跨设备UI。
89 3
|
1月前
|
JavaScript API 开发者
掌握ArkTS,打造HarmonyOS应用新视界:从“Hello World”到状态管理,揭秘鸿蒙UI开发的高效秘诀
【10月更文挑战第19天】ArkTS(ArkUI TypeScript)是华为鸿蒙系统中用于开发用户界面的声明式编程语言,结合了TypeScript和HarmonyOS的UI框架。本文介绍ArkTS的基本语法,包括组件结构、模板和脚本部分,并通过“Hello World”和计数器示例展示其使用方法。
61 1
|
2月前
|
C# Android开发 开发者
Uno Platform 高级定制秘籍:深度解析与实践样式和模板应用,助你打造统一且高效的跨平台UI设计
【9月更文挑战第7天】Uno Platform 是一个强大的框架,支持使用 C# 和 XAML 创建跨平台 UI 应用,覆盖 Windows、iOS、Android、macOS 和 WebAssembly。本文介绍 Uno Platform 中样式和模板的应用,助力开发者提升界面一致性与开发效率。样式定义控件外观,如颜色和字体;模板则详细定制控件布局。通过 XAML 定义样式和模板,并可在资源字典中全局应用或嵌套扩展。合理利用样式和模板能简化代码、保持设计一致性和提高维护性,帮助开发者构建美观高效的跨平台应用。
61 1
|
3月前
|
vr&ar C# 图形学
WPF与AR/VR的激情碰撞:解锁Windows Presentation Foundation应用新维度,探索增强现实与虚拟现实技术在现代UI设计中的无限可能与实战应用详解
【8月更文挑战第31天】增强现实(AR)与虚拟现实(VR)技术正迅速改变生活和工作方式,在游戏、教育及工业等领域展现出广泛应用前景。本文探讨如何在Windows Presentation Foundation(WPF)环境中实现AR/VR功能,通过具体示例代码展示整合过程。尽管WPF本身不直接支持AR/VR,但借助第三方库如Unity、Vuforia或OpenVR,可实现沉浸式体验。例如,通过Unity和Vuforia在WPF中创建AR应用,或利用OpenVR在WPF中集成VR功能,从而提升用户体验并拓展应用功能边界。
72 0
|
3月前
|
C# 开发者 设计模式
WPF开发者必读:命令模式应用秘籍,轻松简化UI与业务逻辑交互,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,命令模式是简化UI与业务逻辑交互的关键技术,通过将请求封装为对象,实现UI操作与业务逻辑分离,便于代码维护与扩展。本文介绍命令模式的概念及实现方法,包括使用`ICommand`接口、`RelayCommand`类及自定义命令等方式,并提供示例代码展示如何在项目中应用命令模式。
53 0
|
3月前
|
开发者 Android开发 UED
打造流畅应用:深入探索如何在Xamarin项目中选择并实现最佳UI/UX设计的实践指南
【8月更文挑战第31天】在数字化时代,UI/UX设计成为应用成功的关键。Xamarin以高效开发和强大兼容性著称,其设计理念“一次编写,处处运行”需充分适应多平台特性,提供一致体验。选择Xamarin.Forms或结合Xamarin.Native可实现跨平台UI设计;遵循各平台设计指南,保持布局一致性和简洁性;通过用户测试不断优化。最终,结合技术和用户需求,打造美观实用的应用,脱颖而出。
56 0
|
6月前
|
XML 前端开发 JavaScript
前端CSS样式零基础教学总结,UI、前端开发都适用
前端CSS样式零基础教学总结,UI、前端开发都适用
|
6月前
|
前端开发 搜索推荐 UED
【Flutter前端技术开发专栏】Flutter中的高级UI组件应用
【4月更文挑战第30天】探索Flutter的高级UI组件,如`TabBar`、`Drawer`、`BottomSheet`,提升应用体验和美观度。使用高级组件能节省开发时间,提供内置交互逻辑和优秀视觉效果。示例代码展示了如何实现底部导航栏、侧边导航和底部弹出菜单。同时,自定义组件允许个性化设计和功能扩展,但也带来性能优化和维护挑战。参考Flutter官方文档和教程,深入学习并有效利用这些组件。
160 0
【Flutter前端技术开发专栏】Flutter中的高级UI组件应用
|
6月前
|
XML API Android开发
构建高效的安卓应用:使用Jetpack Compose实现动态UI
【4月更文挑战第13天】 在移动应用开发领域,随着用户对流畅体验和即时反馈的期待不断上升,开发者面临着构建高效、响应式且具有丰富交互性的用户界面的挑战。传统的Android开发方法,如基于XML的布局,虽然稳定但往往伴随着较高的资源消耗和较低的开发效率。本文将探讨如何使用Jetpack Compose——一种现代声明式UI工具包,来构建动态且高效的安卓应用界面。通过深入分析Jetpack Compose的核心原理及其与传统方法的对比,揭示如何利用其强大的功能集合提升应用性能和开发效率。我们将通过实例演示如何快速构建可重用组件、实现实时数据绑定,以及优化布局渲染过程,从而为开发者提供一种更简洁、
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型应用开发】3.2 RAG实战 - RAG应用+UI实现加载本地文件并对话
【AI大模型应用开发】3.2 RAG实战 - RAG应用+UI实现加载本地文件并对话
207 0
下一篇
无影云桌面