首页 > 解决方案 > Azure 托管应用程序 - 带有应用程序链接的 ViewDefinition.json 操作

问题描述

我们希望在 Azure 服务目录/市场应用程序的概览仪表板上提供一个链接,以跳转到我们的自定义 Web 应用程序(作为应用程序的一部分部署)。 带有示例链接的概览仪表板屏幕截图

根据文档commands可以在之overview类中定义viewDefinition.json

{
    "kind": "Overview",
    "properties": {
        "header": "Welcome to your Azure Managed Application",
        "description": "This managed application is for demo purposes only.",
        "commands": [
            {
                "displayName": "Launch App",
                "path": "testAction",
                "icon": "Link"
            }
        ]
    }
}

由于我们想要提供一个(动态)链接到作为托管应用程序的一部分部署的 WebApp,我们要么需要来自部署的一些信息(例如来自 的输出CreateUiDefinition.json),要么需要在 中检索此类数据viewDefinition.json以构建 URL 的选项。

然而,即使只是提供一个静态链接,path在我们的测试中也不起作用:

{
    "displayName": "Static Link",
    "path": "https://my-domain.com/", //<-- not working
    "icon": "Link"
}

根据文档pathcommand可以触发对自定义资源提供程序的操作。资源提供者可以将请求代理到自定义服务。如果您想提供启动/停止服务的操作,这可能会很好用,但由于代理需要来自服务的 JSON 响应,我们不能简单地显示或重定向到我们的页面。我们也不知道如何使用 JSON 响应来设置path.

我们只想提供一个命令,在新选项卡中打开指向我们自定义 WebApp 的链接或重定向到它。有谁知道我们如何实现这样的链接?

我们已经看到像 SendGrid 这样的 Azure 托管应用程序提供了这样的选项,因此必须有一个(未记录的)方式。 带有链接的 SendGrid 应用程序概览仪表板的屏幕截图

类似问题:Open a web app page using View Definition


更新(2020-11-24):
我们联系了 MS 支持并得到以下回复:

我们得到了产品团队的确认,很遗憾,无法在摘要页面添加动态链接。这是因为自定义操作仅用于执行自定义提供程序操作,而不应该打开硬编码链接等。

标签: azureazure-managed-app

解决方案


不支持从托管应用程序命令打开外部链接。但是,您可以在“概览”页面中的托管应用程序描述中包含指向外部网站的链接。“概览”页面中的“描述”属性支持 Markdown。

类似链接的 URL 示例:

Here is a link to the Azure Portal: <https://portal.azure.com/>

呈现为:

这是 Azure 门户的链接:https ://portal.azure.com/

命名链接示例:

Here is a named link to the Azure Portal: [Azure Portal](https://portal.azure.com/)

呈现为:

这是 Azure 门户的命名链接:Azure 门户

编辑:托管应用程序当前不支持打开动态链接。


推荐阅读