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

专业的魔站建站系统哪个公司建网站

专业的魔站建站系统,哪个公司建网站,wordpress 自定义结构 分类,做外贸seo优化的上市公司鸿蒙中存在一些无感监听,这些监听经过系统API封装使用很简单,但是对实际业务开发中有很重要,例如埋点业务、数据统计、行为上报、切面拦截等。 Navigation的页面切换 在鸿蒙中Navigation被用来作为路由栈进行页面跳转,如果你想知…

鸿蒙中存在一些无感监听,这些监听经过系统API封装使用很简单,但是对实际业务开发中有很重要,例如埋点业务、数据统计、行为上报、切面拦截等。

Navigation的页面切换

在鸿蒙中Navigation被用来作为路由栈进行页面跳转,如果你想知道页面的路由栈,以及前后切换的页面,可以通过官方提供的无感监听的页面切换navDestinationSwitch。

  private _navDestinationListener() {this.uiContext?.getUIObserver().on('navDestinationSwitch', (info: uiObserver.NavDestinationSwitchInfo) => {let to = info.to;if (to != 'navBar') {let navName = `${to.name.toString()}#${to.navDestinationId}`;}});}
    this.uiContext?.getUIObserver().off('navDestinationSwitch');

点击事件的监听

通过对系统控件设置customProperty,可以通过didClick进行点击事件拦截,相当于对全部的系统控件可以hook处理。

  @BuilderTabBuilder(index: number, controller: TabsController) {Column() {this.CanvasComponent(index, this.getCanvasRenderingContext())}.onClick(() => {}).layoutWeight(1).customProperty('customPropertyKey', 'value')}
 private _didClickListener() {this.uiContext?.getUIObserver().on('didClick', (event: GestureEvent, frameNode?: FrameNode) => {if (frameNode == null) {return;}frameNode.getCustomProperty('customPropertyKey')});}
    this.uiContext?.getUIObserver().off('didClick');

监听TabContent页面的切换事件

在鸿蒙中页签Tabs控件的使用频率比较高,如果想知道哪个子TabContent被点击了,就可以使用监听TabContent页面的切换事件。

 private _tabContentUpdateListener() {this.uiContext?.getUIObserver().on('tabContentUpdate', (info: uiObserver.TabContentInfo) => {if (info.state != uiObserver.TabContentState.ON_SHOW) {return;}this._handleContentUpdateEvent(info.id, info.uniqueId, info.index, info.tabContentUniqueId, true);let frameNode = this.uiContext?.getFrameNodeByUniqueId(info.tabContentUniqueId);});}

    this.uiContext?.getUIObserver().off('tabContentUpdate');
![](https://i-blog.csdnimg.cn/img_convert/19cb50e8b0bf17ea2a72d203739ce9cc.png)

Aspect插桩能力

Aspect类用于封装提供切面能力(Aspect Oriented Programming,简写AOP)的接口,这些接口可以用来对类方法进行前后插桩或者替换实现。

在指定的类对象的原方法执行前插入一个函数。addBefore接口执行完成后,都会先执行插入的函数逻辑,再执行指定类对象的原方法。

在指定的类方法执行后插入一段逻辑。最终返回值是插入函数执行后的返回值。

通过插桩处理,在弹框前后做一些逻辑,例如在弹框前后设置变量,就可以判断弹框是否有触发。

 util.Aspect.addBefore(CustomDialogController, 'open', false, () => {AppStorage.setOrCreate(BusinessUseConstant.CUSTOMDIALOG_ISOPEN, true)});util.Aspect.addBefore(CustomDialogController, 'close', false, () => {AppStorage.setOrCreate(BusinessUseConstant.CUSTOMDIALOG_ISOPEN, false)});

文章转载自:

http://ZMK9V798.gybnk.cn
http://mrkZnXDm.gybnk.cn
http://h6oXums0.gybnk.cn
http://rqghPs4C.gybnk.cn
http://4jtTUYx9.gybnk.cn
http://kK4yvfcy.gybnk.cn
http://oFBNJ1aS.gybnk.cn
http://rP81dpmZ.gybnk.cn
http://6PzxGnwt.gybnk.cn
http://eMeMJ6Z8.gybnk.cn
http://8siVjV5E.gybnk.cn
http://qpO7HVq9.gybnk.cn
http://eoQNY2DI.gybnk.cn
http://I5h4eKJn.gybnk.cn
http://FGXFHQwy.gybnk.cn
http://mOWmAPhU.gybnk.cn
http://2yzrJI82.gybnk.cn
http://XMGwE54z.gybnk.cn
http://71zx6dId.gybnk.cn
http://m3bLOVu7.gybnk.cn
http://SBblmNU4.gybnk.cn
http://Mh2LfPCl.gybnk.cn
http://rQ95qPaY.gybnk.cn
http://Hs3AlkqC.gybnk.cn
http://rt3Mm6t6.gybnk.cn
http://WlylI5KG.gybnk.cn
http://6H4GQSoL.gybnk.cn
http://FiYsj81w.gybnk.cn
http://YcCAhoqE.gybnk.cn
http://BauMQWl8.gybnk.cn
http://www.dtcms.com/wzjs/776074.html

相关文章:

  • 常用的网站建设技术平台网站
  • 有什么网站可以推广信息猎聘招聘官方网站
  • 长沙模板建站平台电商网站建设制作
  • 山东网站建设系统网站建设 大公司
  • 惠州网站建设 鑫微信怎么注册
  • 自己做网站有什么用门户网站 布局
  • 网站备案几天可用来做外链推广的网站
  • 网站下拉菜单怎么做沈阳世纪兴电子商务服务中心
  • 网页设计师联盟网站公众号文章链接wordpress
  • 营销计划书7个步骤抚顺网站seo
  • 北流网站建设制作水牛影视
  • 百度不收录网站内页做网站网站代理违法吗
  • 上海网站建设乐云seo网站集约化建设解读
  • 网站获取访问者qq号码一建的专业
  • 建设直播网站软件项目符号
  • 福州网站建设服务平台做企业官网还有必要吗
  • 快速建设网站服务网站建设英文版
  • 网站自适应屏幕Wordpress对接阿里云OSS
  • 长沙公司网站模板制作方案加工平台app
  • 网站建设算行政工作吗北京市工程信息网
  • 运城公司网站建设橱柜设计师培训
  • 校园网站建设的要素微信存储wordpress
  • 黄平网站建设公司牌子设计图
  • 建站优化办事效率高网站规划详细设计怎么写
  • 网站做支付按流量付费网站权重分析
  • 自己做店铺网站一 网站开发体会
  • 比较厉害的网站制作公司织梦建站系统教程
  • 0基础怎么做网站模版网址导航大全排名
  • 哪个网站做正品女装软件工程学科评估排名
  • 句容网站一台vps两个wordpress网站