PDFのダウンロードを強制する

Discourse コミュニティでファイルをホストするために s3 を使用しています。ios アプリを作成し、アプリで開くのではなく PDF ファイルをダウンロードする必要があります。

ダウンロードリンクの解決策を見つけました。

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

しかし、s3 にアップロードされた pdf についてはどうすればよいかわかりません。

編集:トピックを誤解していたため、回答を削除します :person_facepalming:

thokaさん、ありがとうございます :+1:

うーん。彼の要求は私の機能リクエストの正反対のようです…

「いいね!」 1

こちらのソースによると、download をテーマコンポーネント経由でこれらのリンクに追加することで、目的の動作を実現できるはずです。

「いいね!」 1

PDFリンクをすべて変更する方法を見つける必要があります…約3000件のリンクがあります

ディスコースの再マッピングの問題であるべきです

注意:まずステージングサイトでテストしてください。期待どおりに動作しない可能性があります。

「いいね!」 1

こんにちは :wave:

このトピックは同じだと思います:Force download pdf on IOS

これには、api.decorateCookedElement を使用する必要があります。

次のようなものでうまくいくはずです :arrow_down_small:

これをコンポーネントのヘッダーセクションに配置します。

<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>

私のデバイスでテストしたところ、うまくいきましたが、他の属性などを使用したい場合は、簡単に変更できます… お役に立てば幸いです :slight_smile:

「いいね!」 2