Forçar download de pdf

Estou usando o s3 para hospedar meus arquivos na minha comunidade discourse, fiz um aplicativo iOS e preciso baixar arquivos PDF em vez de abri-los no aplicativo

Encontrei uma solução para um link de download:

<a href="download-url?wtn-download-file=true"> download File</a>

Mas para PDFs carregados no s3, não sei o que fazer.

Editar: removendo minha resposta, pois entendi mal o tópico :person_facepalming:

Obrigado thoka :+1:

Hm. Parece que ele exige exatamente o oposto do meu pedido de funcionalidade…

De acordo com esta fonte, você deve ser capaz de obter o comportamento desejado adicionando download a esses links através de um componente de tema.

Preciso encontrar uma maneira de alterar todos os meus links de PDF… são quase 3000 links

Deveria ser uma questão de remapeamento de discurso

Palavra de cautela: Teste primeiro em um site de staging. Pode não funcionar como esperado.

Olá :wave:

Eu acho que este tópico é o mesmo: Force download pdf on IOS

Para isso, você tem que usar api.decorateCookedElement.

Algo como isto deve funcionar :arrow_down_small:

Coloque-o na seção Header de um componente.

<script type="text/discourse-plugin" version="0.8.42">
  api.decorateCookedElement(
    element => {
      const pdfFiles = element.querySelectorAll("a.attachment[href$='.pdf']");

      if (!pdfFiles.length) {
        return;
      }

      pdfFiles.forEach((pdf) => {
        pdf.setAttribute("download", "");
      });
    },
    { id: "download-pdf", onlyStream: true }
  );
</script>

Eu testei no meu dispositivo e funciona para mim, mas se você quiser usar outro atributo, etc., você pode facilmente alterá-lo… Espero que ajude :slight_smile: