Basemap toggle not displaying in Instant App shared from Portal to AGO via distributed collaboration

726
2
05-04-2022 04:41 PM
HollyTorpey_LSA
Occasional Contributor III

I have an Interactive Legend Instant App that is hosted in Portal and shared with AGO via a distributed collaboration for inclusion on a Hub site hosted on AGO. The app opens up fine from the Hub site except that its basemap toggle tool is nowhere to be seen. I have confirmed that when opened from Portal, the app's basemap toggle tool displays and functions normally. Everything else in the app seems to be functioning as expected when launched from Portal, the Hub site, or the item details page in AGO.

Here's the app launched from Portal, with basemap toggle in lower left:

HollyTorpey_LSA_0-1651707061039.png

And here it is launched from AGO, with basemap toggle MIA:

HollyTorpey_LSA_1-1651707144945.png

At first, I thought maybe there was a sharing/permissions issue with the basemaps group in Enterprise where they couldn't be viewed by someone logged in with an AGO account, but then I realized that the basemap switcher widget works just fine in a Web AppBuilder app hosted on Portal and shared to AGO in the same manner.

Here's the Portal-hosted WAB app launched from AGO with basemaps galore:

HollyTorpey_LSA_2-1651707572446.png

Any ideas? Many thanks in advance!

- Holly
0 Kudos
2 Replies
jcarlson
MVP Esteemed Contributor

Off the top of my head, I would guess the difference here is that the WAB widget just pulls a list of basemaps available in the active Portal / AGOL org. You might try adding a "test" basemap to your Portal and see if that basemap is visible in the gallery in AGOL; I suspect it will not.

The basemap switcher, on the other hand, is configured to toggle with a specific map. In the JSON definition of the app, the basemap is being referred to directly by ID, which would not carry over to AGOL.

Can you pull the JSON for the app in both places and see?

Open your browser's developer tools and watch the Network tab as the app loads, then look for something like

https://YOUR-PORTAL-URL/portal/sharing/rest/content/items/ITEMID-OF-APP/data?f=json&token=SOME-TOKEN

 Or else, just browse to the portal/sharing/rest/content endpoint, if that's easier for you.

Either way, at the end of the JSON, you'll find something like this:

"basemapSelector":"SOME-ITEMID"

 

- Josh Carlson
Kendall County GIS
HollyTorpey_LSA
Occasional Contributor III

Hi @jcarlson

Thanks for your response, and apologies for not seeing it until now.

Your response made perfect sense and made me realize that I probably needed to share the basemap with AGO through our distributed collaboration. I hadn't thought to do that since it was already shared with everybody on Portal, but it makes sense that the item ID would need to be present in our AGO environment because of the way the basemap switcher widget calls the alternate basemap by item ID. After adding it to the group associated with our Distributed Collaboration, the basemap switcher widget is now visible even when the app is launched from AGO. Thanks!!

Oh, and to respond to your theory about the WAB basemap widget, it does include our custom Portal basemaps in its gallery even in a Portal app shared to AGO.

Now I have to figure out a new (and possibly related issue), which is that the Environmental Screening Tool WAB widget doesn't seem to have any analysis layers configured when it's shared from Portal to AGO via our distributed collaboration, even though it works fine when launched directly from Portal. I think your explanation of how some widgets access content by item ID may be relevant, though in this case those layers are already shared with AGO through our distributed collaboration and retain the same item IDs. I'm off to inspect the JSON for that app now... thanks again for the tips!

- Holly