cancel
Showing results for 
Search instead for 
Did you mean: 

Launching App/Web Page in same tab/page of browser.

Currently, PowerApps Launching Function is redirecting another app/page to different tab instead of same page. This feature is good for few schenarios but also we should have capabilities to launch in same page with using specific parameter value like (True/False).

 

Tipical observation on Launching function::

When I am loading page and clcking button where Launch Function is specified to load another app, it is loading successfully in different tab. But while I am reverting back from 2nd app to parent app with same Launch function with passing parent page web link url then it is loading in Same Tab. When I reach parent page and repeat the same steps, it is working in same tab.

 

Note: in my observation, Launching different tab only in first time execution of each session. Not sure the reason but observed.

Status: Completed

I'm pleased to announce that screen targeting support (including "self") is now available in the Preview region and those on the Frequent refresh cadence in some regions.   It is rolling out further over the next few days.  You can tell if you have it if LaunchTarget is an available enumeration in your app:

 

2020-05-11_11h10_09.png

 

The documentation has been updated with the details: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-param.   To target a window, you will need to use a new record format for the Launch function which is explained in the docs.

 

I will also be doing a blog post shortly.

 

Your feedback is most welcome!

Comments
Regular Visitor

@GregLi Great news! Looking forward to implementing this feature into existing apps.

Regular Visitor

Hey @GregLi ,

 

This is great news, but I assume this is only for commercial use with this release? Any idea if/when this will be available in the GCC tenants?

Frequent Visitor

Hi @GregLi , I don't understand how to use LaunchTarget parameter. It doesn't let me put it in Launch() as a parameter and I can't fit it anywhere else. Documentation is unclear how to use it. 

Regular Visitor
@GregLi, even though my production environment now has the LAUNCHTARGET functionality available, and passes the required edits when I add it to my app screen Launch function, it still does NOT open the launched app in the SAME window. Still opening in a separate window. Note that I do not see any new categories in the PREVIEW Features section of the Advanced Settings area relating to 'screen targeting support', like you had mentioned in your earlier post. Can you provide the exact syntax of the new feature item that we should be seeing in the Advanced Settings area, in order to effectively 'turn on' this new function?
Regular Visitor

First of all, congratulations to the team for making this new option available.

 

And regarding the execution of this new functionality, I am also not being able to effectively use it. I still don't understand the syntax of this LAUNCHTARGET functionality. Wouldn't it be just a parameter of the current LAUNCH function?

Frequent Visitor

Hey everyone struggling to make it work!

 

I have figured it out after some brainstorming. It's the third argument in Launch() and condition for it to work is to have second argument not empty and in "record format", which basically is object. 

 

This doesnt work:

Launch("MyURL",LaunchTarget.'Self');

 

This also doesn't work, even though the syntax is fine:

Launch("MyURL", {}, LaunchTarget.'Self');

 

But this works:

Launch("MyURL", {q: 1}, LaunchTarget.'Self');

 

The curly braces are the record format which is basically collection. You have to use it in order to make LaunchTarget work and it needs to have some key: value pair, can't be empty. You can pass it anything that doesn't break your page you are launching.

 

I understand it's just preview feature but there is only one example in documentation that is working and there is no information about why you need parameter argument filled even if it's optional in order to make LaunchTarget work. Hope this gets fixed.

Regular Visitor

Nope. Still not opening in same tab for me.  I have 2 parameters being passed as follows:

 

Launch("https://apps.powerapps.com/play/etc...", { SLA: ThisItem.'SLA ID',Period: ThisItem.Period }, LaunchTarget.Self)

Frequent Visitor

@JoeLischynski  I had the same issue, put the Self in apostrophes, full code is like so:

Launch("https://apps.powerapps.com/play/etc...", { SLA: ThisItem.'SLA ID',Period: ThisItem.Period }, LaunchTarget.'Self')

Regular Visitor

@connorwigg

 

Yes I tried that.  But as soon as I do a SAVE, the quotes go away on their own. ?

Power Apps

I'm sorry this has been confusing.  I'll try to clarify a few things.

 

When I mentioned Preview before, I meant the Perview region ("Preview (United States)") for the environment, not that this is an experimental or preview feature.   There is no switch to enable this feature, it is on available all the time.  As there are no backward compatibility ramifications of this change there was no need to guard it.


I just ran these and they are all working as expected with version 3.20051.16, all new windows replace the app in the web player:

 

Launch( "https://bing.com/translator", { from: "en", to: "fr", text: "Love Summer" }, LaunchTarget.'Self' )

 

Launch( "https://bing.com/translator", {}, LaunchTarget.'Self' )

 

Launch( "https://bing.com/translator", Blank(), LaunchTarget.'Self' )

 

As some of you have figured out, you must use the new record format for Launch.  The older name value pair arguments approach won't work.  We had to go this way because it wasn't practical to add another argument as Launch already supported any number of arguments that could coerce to a string.

 

Note that none of these will replace self when authoring.  You must use a player, including the web player, to see this impact.  When authoring, the app will always launch to another tab.  This is because we didn't want to replace the studio with the app that is being edited.

 

Not helping, is that we have also introduced a new keyword, Self, after the Launch changes rolled out  This collided with the Self for the LaunchTarget and so the single quotes are now needed.  We are going to rename LaunchTarget.Self to something better like LaunchTarget.Replace but this hasn't happened yet (not to worry, when it does, we'll update your formulas automatically).

 

Again sorry this has been confusing.  Stick with it, we do think it is working as expected, and should match the documentation except for the 'Self' instead of Self which I'll fix shortly.  Note that the English docs have been updated but localization has not happened yet for the other languages.  Happy to run down any issues you run into.