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>

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>

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>

index页面

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

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>

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

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

4.4 页面跳转效果展示

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

752547b2fae16aa0b6c732f925d2c01f.gif

5. 开发者技术支持

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

image.png

相关文章
|
10天前
|
小程序 前端开发 开发者
小程序的页面如何布局?
【10月更文挑战第16天】小程序的页面如何布局?
25 1
|
2月前
|
JSON 小程序 前端开发
微信小程序的目录结构及页面结构的说明
本文详细介绍了微信小程序的目录结构、页面组成部分以及项目的全局配置文件,阐述了小程序的宿主环境和运行机制,包括小程序启动和页面渲染的过程。
微信小程序的目录结构及页面结构的说明
|
3月前
|
小程序
微信小程序多种跳转页面方式
微信小程序多种跳转页面方式
|
3月前
|
缓存 小程序 数据库
小程序页面之间(传值)传递数据的方法
小程序页面之间(传值)传递数据的方法
179 63
|
14天前
|
JavaScript 索引
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
79 0
|
2月前
|
小程序 JavaScript API
微信小程序开发学习之页面导航(声明式导航和编程式导航)
这篇文章介绍了微信小程序中页面导航的两种方式:声明式导航和编程式导航,包括如何导航到tabBar页面、非tabBar页面、后退导航,以及如何在导航过程中传递参数和获取传递的参数。
微信小程序开发学习之页面导航(声明式导航和编程式导航)
|
2月前
|
小程序 前端开发 生物认证
微信小程序如何将一个按钮放到页面的最底下?
微信小程序如何将一个按钮放到页面的最底下?
149 5
|
2月前
|
JSON 小程序 JavaScript
微信小程序页面事件,下拉刷新事件和上拉触底事件
这篇文章介绍了微信小程序中如何实现下拉刷新和上拉触底事件,包括开启下拉刷新、配置下拉刷新样式、监听下拉刷新事件,以及监听上拉触底事件和配置上拉触底的距离。
|
3月前
|
小程序 开发者
万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】
这篇文章分享了四个不同应用场景下的微信小程序个人主页的源代码和页面效果展示,包括商城系统、外卖系统、医疗挂号和电影购票系统的个人主页。提供了完整的页面布局和样式代码,允许开发者直接复制粘贴并根据自己的项目需求进行简单的改造使用。
万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】
|
4月前
|
小程序 安全 搜索推荐
【微信小程序开发实战项目】——个人中心页面的制作
本文介绍了如何设计和实现一个网上花店的微信小程序,包括个人中心、我的订单和我的地址等功能模块。个人中心让用户能够查看订单历史、管理地址和与客服互动。代码示例展示了`own.wxml`、`own.wxss`和`own.js`文件,用于构建个人中心界面,包括用户信息、订单链接、收藏、地址、客服和版本信息。我的订单部分展示了订单详情,包括商品图片、名称、销量、价格和订单状态,用户可以查看和管理订单。我的地址功能允许用户输入和编辑收货信息,包括联系人、性别、电话、城市和详细地址。每个功能模块都附有相应的WXML和WXSS代码,以及简洁的样式设计。
189 0
【微信小程序开发实战项目】——个人中心页面的制作