I'm working on passing both the view path and view parameters through the page URL in Perspective. The configured page URL is:
viewPath
is the target view path, such as "Group/ViewA"
or "Group/ViewB"
viewParam
is a string separated by backslashes (\
), for example: enterprise\site\area
Because /
and \
are not safe characters in a URL path, I encode them as:
/
→ %2F
and \
→ %5C
After the encoding the code
system.perspective.navigate(page="/group/Group%2FViewA/enterprise%5Csite%5Carea")
system.perspective.navigate(page="/group/Group%2FViewB/enterprise%5Csite%5Carea")
These commands correctly load the target views when triggered from a button event.
The Issue:
After navigating to ViewA or ViewB using the above commands, the Back/Forward browser navigation no longer works as expected.
I observed :
- After loading ViewA, the URL becomes:
/data/perspective/client/PageNavigationTest/group/Group%2FViewA/enterprise/site/area
- After loading ViewB, it becomes:
/data/perspective/client/PageNavigationTest/group/Group%2FViewB/enterprise/site/area
In both cases, the %5C
(encoded backslash) is replaced with a forward slash (/
), while the %2F
(encoded forward slash) remains intact.
As a result, the page parameters are no longer passed correctly, and returning to a previously visited view via Back/Forward doesn't reload the correct state.
My Question:
Why is the encoded backslash %5C
being interpreted or converted as a forward slash (/
) after navigation? Is this expected behavior from the browser or something specific to Ignition Perspective’s handling of URL history?
I've attached a small test project to demonstrate the issue. Any insights or workarounds would be appreciated.
PageNavigationTest.zip (24.3 KB)