manager-ui
manager-ui copied to clipboard
Marketplace Feature: Sending Path in frame Message
It would be very valuable to hot link to marketplace app with a URL like /page/zuid
that way apps can launch into relative content that can be linked throughout the manager.
Describe the solution you'd like
Be able to link to a page like /app/80-f8a6fce7ed-kj6qgd/page/8-xyz-xyz
which would pass the path /page/7-xyz-xyz
in the message body like
{
zuid: '8-zyx...',
path: '/page/7-xyz-xyz',
token: 'xxxxx'
}
Describe alternatives you've considered
Maybe using query params? /app/80-f8a6fce7ed-kj6qgd/?view=page&zuid=8-xyz-xyz
Additional context
This allows apps to be interconnected to content, in the manager for specific apps we support we could check is an app is install and provide buttons in the core parts of the manager like schema
and content
to hotlink to specific areas of analytics, layouts, etc.
The question of data being passed between host(read: manager-ui) and guest(read: marketplace app) applications is simple, postMessage
. For the particular need of guest app deep links we would probably want use an Actor pattern to allow for navigation messages back and forth between host and guest. i.e. The guest could send navigation messages to the host as well. The complexity arises if we link the code bases.
Concerns
- Decision code on whether an app is installed hard links the two applications together as now the host would have knowledge of the guest
- Solves for guest app deep links from host but is limited to that functionality
- Does this introduce security concerns
Can you provide a concrete example? I imagine one would be.
The host content app should contain deep links to the guest(app-google-analytics) which loads analytics data specific to the current content app item
Ultimately I would suggest we aim for something more like; Guest apps can register widgets. Essentially we create a window in specific host app locations where guest apps can insert arbitrary functionality. This would allow for a guest to accomplish the outcome of contextual deep links but also allows for really rich experiences with logic that trigger actions within the guest app.