2

我有一个/Slash生成应用程序文件链接的松弛命令。我想将该链接作为按钮或链接发送给用户,但它必须以:

itms-services://?action=download-manifest&url={download_link}

目前 slack 不认为这是一个有效的链接,但由于权限问题,它是 iOS 强制的。

基本上我想在 slack 上模仿网络上的下载按钮,这样用户就不需要访问该网站。

在 Web 上,此链接itms-services://?action=download-manifest&url={download_link}可以正常工作,并要求用户授权下载。

在此处输入图像描述

test_attachment = [
    {
        "color": "#CC0000",
        "actions": [
            {
                "type": "button",
                "text": ":red_circle:   Download Link:",
                "url": "itms-services://?action=download-manifest&url={download_link}"
            }
        ]
    }
]

slack_client.api_call("chat.postMessage", channel=channel_id, text=text, attachments=json.dumps(test_attachment))

另一个例子:

<a href="itms-services://?action=download-manifest&url=http://loqi.me/app/Geoloqi.plist">
  Download Geoloqi
</a>

这将适用于 Web 以及如何使其适用于松弛消息。

4

2 回答 2

1

我在我的一个应用程序中遇到了类似的问题,我想为动态生成的图像文件提供下载按钮。

据我所知,Slack 中没有允许您执行此操作的开关或选项,因此您唯一的选择是使用帮助 Web 应用程序。

方法是:

  1. 用户单击 Slack 上的链接按钮,在浏览器中打开您的帮助 Web 应用程序
  2. Helper Web 应用程序执行实际下载(无需进一步的用户交互)

我的猜测是用户无论如何都需要在浏览器中进行身份验证,所以这不应该给用户带来任何不便。但当然,您需要提供额外的网络帮助应用程序。

于 2019-08-07T20:15:36.060 回答
1

松弛解析器无法将itms-services链接识别为有效 URL,因为它的地址(我们通常在 之后找到的东西://)是空的。例如,一个快速的解决方法是用一个虚拟地址填充它0.0.0.0

这是一个有效的块套件:

{
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "Try to install me:"
            },
            "accessory": {
                "type": "button",
                "text": {
                    "type": "plain_text",
                    "text": "Install",
                    "emoji": true
                },
                "url": "itms-services://0.0.0.0?action=download-manifest&url={download_link}"
            }
        }
    ]
}

它看起来像: 在此处输入图像描述

于 2020-05-26T14:17:18.927 回答