• Fiori跨应用跳转


    最近开发SAPUI5 App,客户需求是从一个App跳转到另外一个App的特定页面,并动态绑定指定数据。具体来说,如下图,在第一个App选中一个Internal Order然后点击Edit 或者 Create,页面跳转到第二个App的特定页面来编辑来自第一个App的internal order。

     

    如下是跳转的URL。

    #InternalOrder-manageInternalOrder?ControllingArea=00AU&IV_EDIT_MODE=EDIT&InternalOrder=300000&OrderType=Y090&TARGET_CONTENT_AREA=INTERNALORDER_PAGE_INITIAL

    #InternalOrder-manageInternalOrder?ControllingArea=00AU&IV_EDIT_MODE=NEW&InternalOrder=&OrderType=&TARGET_CONTENT_AREA=INTERNALORDER_PAGE_INITIAL

    我们知道在一个App中跳转需要使用路由和导航功能(Routing & Navigation),多个App之间跳转我们是否也可以使用这个功能呢?

    解决方案一:路由和导航功能(Routing & Navigation)

    如果对于SAP UI5 Routing & Navigation不熟悉的同学可以访问:https://sapui5.hana.ondemand.com/#/topic/3d18f20bd2294228acb6910d8e8a5fb5

     

    如上图,SAPUI5使用Router来解析URL中的Hash部分,#/之后的部分是Hash,我在SCP上部署App,Hash部分在&/之后。

    SAPUI5通过路由模式(Routing Patterns)来解析和导航网络地址,大概意思是一个网址符合一个模式(pattern),路由会通过这个模式Pattern设置的目标targets跳转到指定的页面(或者模块)。

    模式(Pattern)可以有各种形式,根据我们这次的需求,我们需要从URL中读出特定的参数parameters,比如:

    ControllingArea=00AU

    IV_EDIT_MODE=NEW

    这里推荐一个验证路由模式的小工具

    https://sapui5.hana.ondemand.com/#/entity/sap.ui.core.routing.Route/sample/sap.ui.core.sample.PatternMatching

     

    此解决方案一共分为两步:

    第一步:设置manifest.json的routting部分

     

    :?query:

    可以匹配我们URL里面的parameters,比如:InternalOrder-manageInternalOrder&/?ControllingArea=00AU&IV_EDIT_MODE=NEW

    第二步:

    在目标controller里面实现读取parameter的代码,然后根据parameter的值,来判断跳转到哪个页面。

     

     

    解决方案二:

    在controller代码里面直接读取URL中的Hash部分,代码如下:

    var sHash = window.location.hash;

    然后解析里面的参数,代码如下:

    var pieces = sHash.split("?");

    if (pieces.length > 1) {

    var params = pieces[1].split("&");

                   for (var i = 0; i < params.length; i++ ) {

                                  var pair = params[i].split("=");

                                  var key = pair[0];

                                  var valueofparam = pair[1];}

    两种解决方案虽然差别不大,但是需要对SAPUI5的routing&Navigation有比较深入的理解,所以深入开发SAPUI5应用不仅仅会使用模板创建App,也需要对框架有进一步的理解。

  • 相关阅读:
    运用《深入理解Java虚拟机》书中知识解决实际问题
    FPGA实现移动目标检测
    FPGA实现人脸检测
    FPGA实现图像的边缘检测:灰度形态学梯度
    FPGA实现图像的二值形态学滤波:边界提取
    VAST3.0规范
    Flash Socket通信的安全策略问题 843端口
    100个开源游戏
    游戏指标分析
    网络广告类型有哪些?
  • 原文地址:https://www.cnblogs.com/alexsap/p/10737006.html
Copyright © 2020-2023  润新知