梅科尔工作室-崔子旭-鸿蒙笔记4

Ability概述

Ability是一种包含用户界面的应用组件,主要用于和用户进行交互。Ability也是系统调度的单元,为应用提供窗口在其中绘制界面。

每一个Ability实例,都对应于一个最近任务列表中的任务。

一个应用可以有一个Ability,也可以有多个Ability,如图1-1所示。例如浏览器应用可以通过一个Ability结合多页面的形式让用户进行的搜索和浏览内容;而聊天应用增加一个“外卖功能”的场景,则可以将聊天应用中“外卖功能”的内容独立为一个Ability,当用户打开聊天应用的“外卖功能”,查看外卖订单详情,此时有新的聊天消息,即可以通过最近任务列表切换回到聊天窗口进行继续聊天对话。

页面跳转和参数接收

在使用页面路由之前,需要先导入router模块,如下代码所示。

import router from '@ohos.router';

跳转方式

方式一:通过调用router.push()方法,跳转到Ability内的指定页面。

每调用一次router.push()方法,均会新建一个页面。默认情况下,页面栈数量会加1,页面栈支持的最大页面数量为32。

当页面栈数量较大或者超过32时,可以通过调用router.clear()方法清除页面栈中的所有历史页面,仅保留当前页面作为栈顶页面。

如:

router.push({

url: 'pages/Second',

params: {

src: 'Index页面传来的数据',

}

})

方式二:router.push(),分单实例模式和标准模式。在单实例模式下:如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近的同url页面会被移动到栈顶,移动后的页面为新建页,原来的页面仍然存在栈中,页面栈数量不变;如果目标页面的url在页面栈中不存在同url页面,按标准模式跳转,页面栈数量会加1。

router.push({

url: 'pages/Second',

params: {

src: 'Index页面传来的数据',

}

}, router.RouterMode.Single)

方式三:router.replace(),即使用新的页面替换当前页面,并销毁被替换的当前页面,页面栈数量不变。

router.replace({

url: 'pages/Second',

params: {

src: 'Index页面传来的数据',

}

})

方式四:router.replace(),分单实例模式和标准模式。

router.replace({

url: 'pages/Second',

params: {

src: 'Index页面传来的数据',

}

}, router.RouterMode.Single)

页面返回

router.back()

  • 调用router.back()返回的目标页面需要在页面栈中存在才能正常跳转。

  • 例如调用router.push()方法跳转到Second页面,在Second页面可以通过调用router.back()方法返回到上一个页面。

  • 例如调用router.clear()方法清空了页面栈中所有历史页面,仅保留当前页面,此时则无法通过调用router.back()方法返回到上一个页面。

返回上一个页面:

router.back()

返回到指定页面:

router.back({ url: 'pages/index' })

数据请求模块

首先需要导入http 模块

  1. import http from'@ohos.net.http';

  • 配置权限

  • 在config.json的module模块里配置,示例如下。

  • 配置网络权限

http.createHttp

createHttp(): HttpRequest

创建一个http,里面包括发起请求、中断请求、订阅/取消订阅HTTP Response Header 事件。每一个HttpRequest对象对应一个Http请求。如需发起多个Http请求,须为每个Http请求创建对应HttpRequest对象。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

HttpRequest

返回一个HttpRequest对象,里面包括request、destroy、on和off方法。

HttpRequest

http请求任务。在调用HttpRequest的方法前,需要先通过createHttp()创建一个任务。

request

request(url: string, callback: AsyncCallback<HttpResponse>):void

根据URL地址,发起HTTP网络请求,使用callback方式作为异步方法。

根据URL地址,发起HTTP网络请求,使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

参数:

参数名

类型

必填

说明

url

string

发起网络请求的URL地址。

callback

AsyncCallback<HttpResponse>

回调函数。当成功发起http请求时,err为undefined,data为获取到的HttpResponse;否则err为错误对象。

示例:

httpRequest.request("EXAMPLE_URL", (err, data) => {

if (!err) {

console.info('Result:' + data.result);

console.info('code:' + data.responseCode);

console.info('header:' + JSON.stringify(data.header));

console.info('cookies:' + data.cookies); // 8+

} else {

console.info('error:' + JSON.stringify(err));

}

});

弹窗模块

首先需要导入prompt模块

主要使用的是prompt.showToast()方法,作用是可以在屏幕上弹出提示信息。message是弹出的消息,而duration是弹出的时间,单位是毫秒。1000是1秒,则2000是2秒。

绑定事件

  • 用on加事件名称,不同的组件有不同的事件类型。通用事件如下:

  • 点击事件

  • 触摸事件

  • 挂载卸载事件

  • 拖拽事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值