Back button (navigation)后退按钮(导航)

<< 点击显示目录 >>

主页  mappView帮助助手 > mapp View帮助信息 > 指南 > FAQs > 事件和行动应用 >

Back button (navigation)后退按钮(导航)

这个例子演示了以下用例。

应该实现一个按钮,返回到当前页面打开时的那个页面。

Page_A → Page_Z:点击  Page_Z上的"Back返回 "按钮 ,就会导航到A页。

Page_B → Page_Z:点击  Page_Z上的"Back返回"按钮 ,可以导航到B页。

NavigationBack

这个功能可以用一个 按钮部件会话变量事件绑定轻松实现 。

创建一个会话变量

在导航过程中,最后的页面ID将被存储在一个类型 ANY_STRING的会话变量中 。会话变量是在HMI应用程序包的 "变量 "逻辑视图中的.svar文件中创建的。

<Variable name="NavigationBack" xsi:type="ANY_STRING" value="" />

用于保存 "旧 "页面ID的事件绑定

在第一个事件绑定中,返回值 oldValue 被写入  系统变量 ::SYSTEM:clientInfo.currentPageIdValueChanged 事件中 作为会话动作 SetValueString 动态参数 。

<EventBinding>
    <Source xsi:type="session.Event" refId="::SYSTEM:clientInfo.currentPageId" event="ValueChanged" />
    <EventHandler>
        <Action>
            <Target xsi:type="session.VariableAction" refId="NavigationBack" >
                <Method xsi:type="session.VariableAction.SetValueString" value="=oldValue" />
            </Target>
        </Action>
    </EventHandler>
</EventBinding>

会话变量 NavigationBack 现在包含了导航到当前页面的页面的ID。

用于导航到上一页的事件绑定

Page_Z上的一个按钮部件的事件 点击Click 在第二个事件绑定中被响应。

使用一个操作数,会话变量 NavigationBack 被读取并指定为客户端系统方法 Navigate 动态参数 。

<EventBinding>
    <Source xsi:type="widgets.brease.Button.Event" contentRefId="Content_Z" widgetRefId="ButtonBack" event="Click" />
    <Operand name="OldPageId" datatype="ANY_STRING">
        <ReadTarget xsi:type="session.VariableAction.Read" refId="NavigationBack" >
            <Method xsi:type="session.VariableAction.GetValue" />
        </ReadTarget>
    </Operand>
    <EventHandler>
        <Action>
            <Target xsi:type="clientSystem.Action">
                <Method xsi:type="clientSystem.Action.Navigate" pageId="=OldPageId" />
            </Target>
        </Action>
    </EventHandler>
</EventBinding>