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…

1 curtida

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.

1 curtida

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.

1 curtida

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:

2 curtidas