In browser open a new tab via an URL passing a parameter like object/array

Hi folks, I need to take a new step in my project that require to me to have some new perspective skills that I’ve been working on, but I need to figure out if I can do what I want.
I have a project with a navigation menu and a few pages and their primary views.
While running in the browser on a specific page, I have a button and pressing it I want open in a new tab with inside a page and the associated view (view that has its own parameter configured as /newpage/:par1 that must be object_par or array_par).
I tested the script_action navigation and try to pass the par as an array or an object but only a simple parameter value can be passed. The point is that the view I have to open in the new tab is structured with a lot of data that has to be passed to it (dataset, values, …) and I want to mask them in the URL by passing a a single structured parameter.

The par i try to pass is created in: session.props.custom.par1
In the view i’ve created a par with the same structure of par1 something like:
{‘par1’:{“par1.1”:strValue…},‘par2’:[par2.1,par2.2… ],“par3”:numValue…} or
And this is the navigation script action:

Is it possible do what i want using this approach and is so what am I doing wrong? Or there’s another smart way to do this?

Thx to anyone who will give me some suggestions.

No you can only pass on strings, you could stringify it to jsonstring and parse it back but it doesnt look like a good idea to pass along this much data through url.
Its not safe and allows for much manipulation.

you should use a view, Though that doesnt seem to open in a new tab…

Sorry, of course its selected mabe i’ve done the printscreen before check it.

How can i try what you say going in a new tab?

It does not seem to work in a new tab its a feature requested a while ago [Feature-11590] System.perspective.navigate() Lacks Option To Open New Tab

I image you could open a new tab and send a message with session scope to it, but thats all quite a bother xd
Make a “central hub page” which reads out messages from scope session which then when found opens the view with all the viewparams

trigger the open central hub page on new tab followed by the message handler which sends the data to it. tho im geussing that might need a delay if the page hasnt opend yet idk

Is it that imporant to open in a new tab? xD
Cant you open the page with a few params and query for the whole array there?

If you click on ‘Perspective’ in the ‘Project Browser’, the property editor will populate with the properties for the session. You may have already done this?.. session.props.custom.par1, but it should be: “self.session.custom.par1”. Either way, all the pages under this session have access to these variables. So, you don’t need to pass them. Write them then open the view. use the events in that view to read them.

This method does have some timing issues. If you find it won’t work… open the screen and “SendMessage” - write some code in the, now opened, view to receive the message you sent.

I’ve found a stupid solution but it run.
I run 3 sequential navigation script in sequence for my actual tab:
The first simply open a new tab.
The second pass to actual tab and the other opened my view with al the complex par structure
used inside of the view like victordcq suggest to me.
The third open in the start tab the view where my button with script is located.

Oh thx, i’ll testing asap.