当前位置: 首页 > news >正文

怎么帮助网站推广深圳网站设计g

怎么帮助网站推广,深圳网站设计g,17网站一起做网店的流程,擅自给公司做网站有什么责任一、概述 UIAbility组件是一种包含UI的应用组件#xff0c;主要用于和用户交互。UIAbility组件是系统调度的基本单元#xff0c;为应用提供绘制界面的窗口。一个应用可以包含一个或多个UIAbility组件。每一个UIAbility组件实例都会在最近任务列表中显示一个对应的任务。 U…一、概述  UIAbility组件是一种包含UI的应用组件主要用于和用户交互。UIAbility组件是系统调度的基本单元为应用提供绘制界面的窗口。一个应用可以包含一个或多个UIAbility组件。每一个UIAbility组件实例都会在最近任务列表中显示一个对应的任务。 UIAbility的设计理念 原生支持应用组件级的跨端迁移和多端协同。 支持多设备和多窗口形态。 UIAbility划分建议  如果开发者希望在任务视图中看到一个任务则建议使用一个UIAbility多个页面的方式。 如果开发者希望在任务视图中看到多个任务或者需要同时开启多个窗口则建议使用多个UIAbility开发不同的模块功能。 为使应用能够正常使用UIAbility需要在module.json5配置文件的abilities标签中声明UIAbility的名称、入口、标签等相关信息。 {module: {...abilities: [{name: EntryAbility, // UIAbility组件的名称srcEntry: ./ets/entryability/EntryAbility.ets, // UIAbility组件的代码路径description: $string:EntryAbility_desc, // UIAbility组件的描述信息icon: $media:icon, // UIAbility组件的图标label: $string:EntryAbility_label, // UIAbility组件的标签startWindowIcon: $media:icon, // UIAbility组件启动页面图标资源文件的索引startWindowBackground: $color:start_window_background, // UIAbility组件启动页面背景颜色资源文件的索引...}]} } 二、UIAbility组件的生命周期 1、create状态 Create状态为在应用加载过程中UIAbility实例创建完成时触发系统会调用onCreate()回调。可以在该回调中进行页面初始化操作例如变量定义资源加载等用于后续的UI展示。 import { AbilityConstant, UIAbility, Want } from kit.AbilityKit;export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {// 页面初始化// Want是对象间信息传递的载体可以用于应用组件间的信息传递。}// ... } 2、WindowStageCreate和WindowStageDestroy状态 UIAbility实例创建完成之后在进入Foreground之前系统会创建一个WindowStage。WindowStage创建完成后会进入onWindowStageCreate()回调可以在该回调中设置UI加载、设置WindowStage的事件订阅。 在onWindowStageCreate()回调中通过loadContent()方法设置应用要加载的页面并根据需要调用on(windowStageEvent)方法订阅WindowStage的事件获焦/失焦、可见/不可见。 import { UIAbility } from kit.AbilityKit; import { window } from kit.ArkUI; import { hilog } from kit.PerformanceAnalysisKit;const TAG: string [EntryAbility]; const DOMAIN_NUMBER: number 0xFF00;export default class EntryAbility extends UIAbility {// ...onWindowStageCreate(windowStage: window.WindowStage): void {// 设置WindowStage的事件订阅获焦/失焦、可见/不可见try {windowStage.on(windowStageEvent, (data) {let stageEventType: window.WindowStageEventType data;switch (stageEventType) {case window.WindowStageEventType.SHOWN: // 切到前台hilog.info(DOMAIN_NUMBER, TAG, windowStage foreground.);break;case window.WindowStageEventType.ACTIVE: // 获焦状态hilog.info(DOMAIN_NUMBER, TAG, windowStage active.);break;case window.WindowStageEventType.INACTIVE: // 失焦状态hilog.info(DOMAIN_NUMBER, TAG, windowStage inactive.);break;case window.WindowStageEventType.HIDDEN: // 切到后台hilog.info(DOMAIN_NUMBER, TAG, windowStage background.);break;default:break;}});} catch (exception) {hilog.error(DOMAIN_NUMBER, TAG, Failed to enable the listener for window stage event changes. Cause: JSON.stringify(exception));}hilog.info(DOMAIN_NUMBER, TAG, %{public}s, Ability onWindowStageCreate);// 设置UI加载windowStage.loadContent(pages/Index, (err, data) {// ...});} } 对应于onWindowStageCreate()回调。在UIAbility实例销毁之前则会先进入onWindowStageDestroy()回调可以在该回调中释放UI资源。 import { UIAbility } from kit.AbilityKit; import { window } from kit.ArkUI; import { hilog } from kit.PerformanceAnalysisKit; import { BusinessError } from kit.BasicServicesKit;const TAG: string [EntryAbility]; const DOMAIN_NUMBER: number 0xFF00;export default class EntryAbility extends UIAbility {windowStage: window.WindowStage | undefined undefined;// ...onWindowStageCreate(windowStage: window.WindowStage): void {this.windowStage windowStage;// ...}onWindowStageDestroy() {// 释放UI资源// 例如在onWindowStageDestroy()中注销获焦/失焦等WindowStage事件try {if (this.windowStage) {this.windowStage.off(windowStageEvent);}} catch (err) {let code (err as BusinessError).code;let message (err as BusinessError).message;hilog.error(DOMAIN_NUMBER, TAG, Failed to disable the listener for windowStageEvent. Code is ${code}, message is ${message});}} } 3、WindowStageWillDestroy状态 对应onWindowStageWillDestroy()回调在WindowStage销毁前执行此时WindowStage可以使用。 import { UIAbility } from kit.AbilityKit; import { window } from kit.ArkUI;export default class EntryAbility extends UIAbility {windowStage: window.WindowStage | undefined undefined;// ...onWindowStageCreate(windowStage: window.WindowStage): void {this.windowStage windowStage;// ...}onWindowStageWillDestroy(windowStage: window.WindowStage) {// 释放通过windowStage对象获取的资源}onWindowStageDestroy() {// 释放UI资源} } 4、Foreground和Background状态 Foreground和Background状态分别在UIAbility实例切换至前台和切换至后台时触发对应于onForeground()回调和onBackground()回调。 onForeground()回调在UIAbility的UI可见之前如UIAbility切换至前台时触发。可以在onForeground()回调中申请系统需要的资源或者重新申请在onBackground()中释放的资源。 onBackground()回调在UIAbility的UI完全不可见之后如UIAbility切换至后台时候触发。可以在onBackground()回调中释放UI不可见时无用的资源或者在此回调中执行较为耗时的操作例如状态保存等。 例如应用在使用过程中需要使用用户定位时假设应用已获得用户的定位权限授权。在UI显示之前可以在onForeground()回调中开启定位功能从而获取到当前的位置信息。 当应用切换到后台状态可以在onBackground()回调中停止定位功能以节省系统的资源消耗。 import { UIAbility } from kit.AbilityKit;export default class EntryAbility extends UIAbility {// ...onForeground(): void {// 申请系统需要的资源或者重新申请在onBackground()中释放的资源}onBackground(): void {// 释放UI不可见时无用的资源或者在此回调中执行较为耗时的操作// 例如状态保存等} } 当应用的UIAbility实例已创建且UIAbility配置为singleton启动模式时再次调用startAbility()方法启动该UIAbility实例时只会进入该UIAbility的onNewWant()回调不会进入其onCreate()和onWindowStageCreate()生命周期回调。应用可以在该回调中更新要加载的资源和数据等用于后续的UI展示。 import { AbilityConstant, UIAbility, Want } from kit.AbilityKit;export default class EntryAbility extends UIAbility {// ...onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam) {// 更新资源、数据} } 5、destroy状态 Destroy状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。 例如调用terminateSelf()方法停止当前UIAbility实例从而完成UIAbility实例的销毁或者用户使用最近任务列表关闭该UIAbility实例完成UIAbility的销毁。 import { UIAbility } from kit.AbilityKit;export default class EntryAbility extends UIAbility {// ...onDestroy() {// 系统资源的释放、数据的保存等} } 三、UIAbility启动模式 UIAbility的启动模式是指UIAbility实例在启动时的不同呈现状态。 1、singleton启动模式 singleton启动模式为单实例模式也是默认情况下的启动模式。 每次调用startAbility()方法时如果应用进程中该类型的UIAbility实例已经存在则复用系统中的UIAbility实例。系统中只存在唯一一个该UIAbility实例即在最近任务列表中只存在一个该类型的UIAbility实例。 如果需要使用singleton启动模式在module.json5配置文件中的launchType字段配置为singleton即可。 {module: {...abilities: [{launchType: singleton,...}]} } 2、multiton启动模式 multiton启动模式为多实例模式每次调用startAbility()方法时都会在应用进程中创建一个新的该类型UIAbility实例。即在最近任务列表中可以看到有多个该类型的UIAbility实例。这种情况下可以将UIAbility配置为multiton多实例模式。 multiton启动模式的开发使用在module.json5配置文件中的launchType字段配置为multiton即可。 {module: {...abilities: [{launchType: multiton,...}]} } 3、specified启动模式 specified启动模式为指定实例模式针对一些特殊场景使用例如文档应用中每次新建文档希望都能新建一个文档实例重复打开一个已保存的文档希望打开的都是同一个文档实例。 例如有两个UIAbilityEntryAbility和SpecifiedAbilitySpecifiedAbility配置为指定实例模式启动需要从EntryAbility的页面中启动SpecifiedAbility。 a、在SpecifiedAbility中将module.json5配置文件的launchType字段配置为specified。 {module: {...abilities: [{launchType: specified,...}]} } b、在创建UIAbility实例之前开发者可以为该实例指定一个唯一的字符串Key这样在调用startAbility()方法时应用就可以根据指定的Key来识别响应请求的UIAbility实例。在EntryAbility中调用startAbility()方法时可以在want参数中增加一个自定义参数例如instanceKey以此来区分不同的UIAbility实例。 // 在启动指定实例模式的UIAbility时给每一个UIAbility实例配置一个独立的Key标识// 例如在文档使用场景中可以用文档路径作为Key标识import { common, Want } from kit.AbilityKit;import { hilog } from kit.PerformanceAnalysisKit;import { BusinessError } from kit.BasicServicesKit;const TAG: string [Page_StartModel];const DOMAIN_NUMBER: number 0xFF00;function getInstance(): string {return KEY;}EntryComponentstruct Page_StartModel {private KEY_NEW KEY;build() {Row() {Column() {// ...Button()// ....onClick(() {let context: common.UIAbilityContext getContext(this) as common.UIAbilityContext;// context为调用方UIAbility的UIAbilityContext;let want: Want {deviceId: , // deviceId为空表示本设备bundleName: com.samples.stagemodelabilitydevelop,abilityName: SpecifiedFirstAbility,moduleName: entry, // moduleName非必选parameters: {// 自定义信息instanceKey: this.KEY_NEW}};context.startAbility(want).then(() {hilog.info(DOMAIN_NUMBER, TAG, Succeeded in starting SpecifiedAbility.);}).catch((err: BusinessError) {hilog.error(DOMAIN_NUMBER, TAG, Failed to start SpecifiedAbility. Code is ${err.code}, message is ${err.message});})this.KEY_NEW this.KEY_NEW a;})// ...Button()// ....onClick(() {let context: common.UIAbilityContext getContext(this) as common.UIAbilityContext;// context为调用方UIAbility的UIAbilityContext;let want: Want {deviceId: , // deviceId为空表示本设备bundleName: com.samples.stagemodelabilitydevelop,abilityName: SpecifiedSecondAbility,moduleName: entry, // moduleName非必选parameters: {// 自定义信息instanceKey: getInstance()}};context.startAbility(want).then(() {hilog.info(DOMAIN_NUMBER, TAG, Succeeded in starting SpecifiedAbility.);}).catch((err: BusinessError) {hilog.error(DOMAIN_NUMBER, TAG, Failed to start SpecifiedAbility. Code is ${err.code}, message is ${err.message});})this.KEY_NEW this.KEY_NEW a;})// ...}.width(100%)}.height(100%)}} c、由于SpecifiedAbility的启动模式被配置为指定实例启动模式因此在SpecifiedAbility启动之前会先进入对应的AbilityStage的onAcceptWant()生命周期回调中以获取该UIAbility实例的Key值。然后系统会自动匹配如果存在与该UIAbility实例匹配的Key则会启动与之绑定的UIAbility实例并进入该UIAbility实例的onNewWant()回调函数否则会创建一个新的UIAbility实例并进入该UIAbility实例的onCreate()回调函数和onWindowStageCreate()回调函数。 import { AbilityStage, Want } from kit.AbilityKit;export default class MyAbilityStage extends AbilityStage {onAcceptWant(want: Want): string {// 在被调用方的AbilityStage中针对启动模式为specified的UIAbility返回一个UIAbility实例对应的一个Key值// 当前示例指的是module1 Module的SpecifiedAbilityif (want.abilityName SpecifiedFirstAbility || want.abilityName SpecifiedSecondAbility) {// 返回的字符串Key标识为自定义拼接的字符串内容if (want.parameters) {return SpecifiedAbilityInstance_${want.parameters.instanceKey};}}// ...return MyAbilityStage;}} 后续UIAbility组件基础二
http://www.hkea.cn/news/14335897/

相关文章:

  • 网站建设 工作建议网站建设基本步骤包括哪些
  • 做竞价的网站需要做外部链接吗做网站知识
  • 网站优化主旨广州seo诊断
  • 如何利用社交网站做招聘手机网站案列
  • 个人备案的网站可以做淘宝客吗市场监督管理局官网查询
  • 苏州科建设交通学院网站微博+wordpress
  • 中国老区建设促进会网站网站开发的大致流程
  • 网站设计公司深圳哪些网站是由wordpress做的
  • 网站目录文件夹怎样建设那种游戏网站
  • 有趣的个人网站扬州网站商城建设价格
  • wordpress的官方网站开源手机网站
  • 做网站用什么代码在微信上做网站
  • 网站建设购买什么境外主机做网站赔了8万
  • 电脑上怎么做网站用lnmp做网站
  • 响应式网站设计教程开三云匠网
  • 做自己的直播网站网站建设著作权
  • 东莞市建设工程质监督站网站四川住建厅官方网站的网址
  • 地下彩票网站建设怎样做网络推广链接
  • 中文网站建设技术解决方案佛山快速排名seo
  • 网站建设语asp外贸网站建设招聘
  • 上海建设局官方网站长春网站建设58同城
  • 上海做兼职的网站黄骅港吧
  • 网站建设中gif有没有免费的网站推销产品
  • 范县网站建设费用织梦5.7cms照明灯具能源电子产品企业网站源码企业模板带后台
  • 深圳做网站的公司哪个好外贸都是在哪些网站做
  • 怎么看网站有没有被收录国内永久免费crm系统网站推荐
  • 网站建设预付怎么做微网站推广
  • 如何做教育网站如何选网站服务器
  • 开一个做网站的公司赚钱吗创新的福州网站建设
  • 一个网站的建设需要什么时候开始可以做设计兼职的网站有哪些