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

简介: JavaScript(简称“JS”)是一种基于对象和事件驱动并具有相对安全性的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中。在物联网领域,利用JavaScript来开发前端页面,也逐步成为了一种趋势。

名词解释

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: 全称是JavaScritp Application Programming Interface,即JS应用程序编程接口,实现JS前端和系统层各个模块的接口调用,类似android系统的JNI

1、JavaScript简介

JavaScript(简称“JS”)是一种基于对象和事件驱动并具有相对安全性的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中。在物联网领域,利用JavaScript来开发前端页面,也逐步成为了一种趋势。

2.、HaaS UI JSAPI简介

HaaS UI JSAPI为JavaScript提供了调用底层系统能力的接口,例如数据存储、网络管理、文件操作等。HaaS UI已经内置了一些基本的JSAPI,本文将介绍HaaS UI中一些内置JSAPI的功能以及用法。

3、HaaS UI内置JSAPI列表

HaaS UI目前内置了一些基本的JSAPI供开发者使用,这些JSAPI提供与应用生命周期、页面导航、数据存储、包管理、网络请求等强关联的接口,接口宿主为框架提供的基础类($falcon,App,Page等)。

接口宿主 JSAPI 调用方法 接口功能
$falcon navTo $falcon.navTo(target:String, options:Object) 应用、页面管理
closeApp $falcon.closeApp()
closePageByName $falcon.closePageByName(pageName:String)
closePageById $falcon.closePageById(pageId:String)
getPage $falcon.getPage(component:Component)
App finish falcon.app.finish()
Page setRootComponent this.setRootComponent(component:Component) // this指针属于继承$falcon.Page的类
finish this.finish() // this指针属于继承$falcon.Page的类

4、HaaS UI JSAPI使用示例

下面将以页面跳转为例,介绍如何去使用JSAPI。以Vue工程为例,我们开发了两个页面,一个页面是index页面,另一个页面是page页面,我们要实现这两个页面之间的跳转。

4.1、 index页面开发

首先需要开发index页面,模板和

  <div class="wrapper">
    <text class="index">This is index!</text>
    <text class="button">click to page</text>
  </div>
</template>
 
<style scoped>
.wrapper {
  justify-content: center;
  align-items: center;
  background-color: #f8f8ff;
}
.index {
  text-align: center;
  margin-top: 20px;
  font-size: 50px;
  color: #41b883;
}
.button {
  margin-right: 20px;
  padding: 10px;
  background-color: #888;
  border-radius: 10px;
  align-items: center;
  justify-content: center;
  font-size: 30px;
}
</style>
AI 代码解读

index页面效果

image.png

4.2、 page页面开发

然后需要开发page页面,模板和

  <div class="wrapper">
    <text class="page">This is page!</text>
    <text class="button">click to index</text>
  </div>
</template>
 
<style scoped>
.wrapper {
  justify-content: center;
  align-items: center;
  background-color: background-color: #0000ff;
}
.page {
  text-align: center;
  margin-top: 20px;
  font-size: 50px;
  color: #41b883;
}
.button {
  margin-right: 20px;
  padding: 10px;
  background-color: #888;
  border-radius: 10px;
  align-items: center;
  justify-content: center;
  font-size: 30px;
}
</style>
AI 代码解读

page页面效果

image.png

4.3 index页面跳转page页面

我们想要实现从index页面点击跳转到page页面的功能,只需要调用JSAPI中的navTo接口即可。在index页面,我们只需要在

export default {
  name: "index",
  data() {
    return {
      msg: "",
    };
  },
  methods: {
    jump() {
      $falcon.navTo("page", { from: "index" });
    },
    finishApp() {
      this.$app.finish();
    },
    finishPage() {
      this.$page.finish();
    },
  },
};
</script>
AI 代码解读

index页面

  <div class="wrapper">
    <text class="index">This is index!</text>
    <text class="button" @click="jump">click to page</text>
  </div>
</template>
AI 代码解读

4.3 page页面跳转index页面

同理,要实现从page页面点击跳转到index页面的功能,只需要调在index页面的

export default {
  name: "index",
  data() {
    return {
      msg: "",
    };
  },
  methods: {
    jump() {
      $falcon.navTo("index", { from: "page" });
    },
    finishApp() {
      this.$app.finish();
    },
    finishPage() {
      this.$page.finish();
    },
  },
};
</script>

AI 代码解读

同样,需要在page页面的模板中将jump函数绑定到相应的button上:

  <div class="wrapper">
    <text class="page">This is page!</text>
    <text class="button" @click="jump">click to index</text>
  </div>
</template>
AI 代码解读

4.4 页面跳转效果展示

从index页面点击跳转按钮可以跳到page页面,同样,从page页面点击跳转按钮可以跳回index页面。

752547b2fae16aa0b6c732f925d2c01f.gif

5. 开发者技术支持

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

image.png

目录
打赏
0
1
0
0
12349
分享
相关文章
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
180 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
微信小程序页面导航与路由:实现多页面跳转与数据传递
本文深入探讨微信小程序的页面导航与路由机制,介绍多种页面跳转方式如`wx.navigateTo`、`wx.redirectTo`、`wx.switchTab`等,并讲解通过URL、全局变量和事件传递数据的方法。结合案例实现多页面跳转与数据传递,帮助开发者掌握这一重要技能。
小程序的页面如何布局?
【10月更文挑战第16天】小程序的页面如何布局?
261 1
微信小程序的目录结构及页面结构的说明
本文详细介绍了微信小程序的目录结构、页面组成部分以及项目的全局配置文件,阐述了小程序的宿主环境和运行机制,包括小程序启动和页面渲染的过程。
微信小程序的目录结构及页面结构的说明
微信小程序开发学习之页面导航(声明式导航和编程式导航)
这篇文章介绍了微信小程序中页面导航的两种方式:声明式导航和编程式导航,包括如何导航到tabBar页面、非tabBar页面、后退导航,以及如何在导航过程中传递参数和获取传递的参数。
微信小程序开发学习之页面导航(声明式导航和编程式导航)
微信小程序页面事件,下拉刷新事件和上拉触底事件
这篇文章介绍了微信小程序中如何实现下拉刷新和上拉触底事件,包括开启下拉刷新、配置下拉刷新样式、监听下拉刷新事件,以及监听上拉触底事件和配置上拉触底的距离。
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
TIS 是一款基于Web-UI的开源大数据集成工具,通过与人大金仓Kingbase的深度整合,提供高效、灵活的实时数据集成方案。它支持增量数据监听和实时写入,兼容MySQL、PostgreSQL和Oracle模式,无需编写复杂脚本,操作简单直观,特别适合非专业开发人员使用。TIS率先实现了Kingbase CDC连接器的整合,成为业界首个开箱即用的Kingbase CDC数据同步解决方案,助力企业数字化转型。
44 5
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
50 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
Vue Amazing UI 是一个基于 Vue 3、TypeScript、Vite 等最新技术栈开发构建的现代化组件库,包含丰富的 UI 组件和常用工具函数,并且持续不断维护更新中。另外,组件库全量使用 TypeScript,支持自动按需引入和 Tree Shaking 等,能够显著提升开发效率,降低开发成本。
57 5
Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)