zoukankan      html  css  js  c++  java
  • HMS16. 页面间跳转导航

    01. 关于页面间的跳转

      在HarmonyOS中,一个App允许存在多个Ability, 一个Ability中允许存在多个AbilitySlice; 

      因此在 App的应用中,存在同一个Ability中不同Slice之间的跳转,也存在不同Ability间的页面跳转;

      a. 在一个Ability里,使用  present() / presentForResult() 方法从一个AbilitySlice导航到另外一个 AbilitySlice; 即同一个Page内,不同AbilitySlice之间的跳转;

        

      b. 在不同Ability的AbilitySlice之间,使用  startAbility() / startAbilityForResult() 来启动一个新的 Ability; 

        

     02. 本次学习Demo源码
      a. 实现同Ability内不同Slice间的跳转;
      b. 实现不同Ability间的跳转;

      

     

    03. 需注意的知识点

      >>>  新建 Ability

        

      >>>  在一个 Ability中新建新的 AbilitySlice

        

       >>> 同Ability间,源Slice 接收 目标 Slice 返回数据的的处理

        a. 源Slice 在调用 presentForResult时,传入一个 请求码 (requestCode); 请求码自定义;
         

        b,源 Slice 配置结果接收监听

         

        c. 目标Slice中配置返回结果

           

       >>> 不同Ability间,源Slice 接收 目标 Slice 返回数据的的处理

         不同Ability之间的跳转,需要使用 startAbilityForResult来处理;

         a. 源Slice发起请求

          

        b. 目标Slice或目标Ability中配置返回数据 

         * 从目标Ability 中配置返回结果 

            

         * 从目标Slice中返回结果

         

         c. 源Slice中配置结果接收处理

         

       >>> 从例程中可以看到,关于不同Page之间的跳转有二种不同的方式,

        * 第一种方式,是直接配置跳转参数,

           

        * 第二种方式,是通过指定的Action来跳转

         

         要想实现第二种效果,需要注意如下几点:

          1. 目标ABility,注册Action路由
           

           2.目标ABility所属模块 config.json 中,为目标模块注册 Action

              

           3.调用Slice,在业务中指定目标ABility中注册的Action; 

           Operation operation = new Intent.OperationBuilder().withAction(ACTION_NAME).build();
           此时,可正常跳转到目标ABility; 

      

      

     

        

          

     

     

        

      

      

  • 相关阅读:
    C#托盘图标
    线程相关整理
    Quartz.NET 快速入门
    (转)IE内存泄露,iframe内存泄露造成的原因和解决方案
    美化console.log的文本(转载)
    mongoDB学习资料整理
    EF7学习资料整理
    Oracle常用
    Node.js学习资料整理
    【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器(转)
  • 原文地址:https://www.cnblogs.com/jieling/p/15500206.html
Copyright © 2011-2022 走看看