質問: 'inline; filename=%s.pdf' % 'yourfilename' return response ``` このresponseでPDFを返しているのですが、これをSafariで開きたいです。
回答: PWA ではその PWA が扱う URL の範囲を Web App Manifest の `scope` メンバで定義する 仕組みとなっているので、これによって **PDF 出力の URL だけが `scope` から外れる状況を作る** のが良いのではないでしょうか。 但し、 `scope` は 単純な URL の前方一致で判定される ため、恐らくは次の何れかの方法で **PDF 出力以外の (PWA に対応した) 部分が独立する** ように、 サイト全体の URL 構成を変更する必要が出てくるかと存じます。 1. PWA 対応部分は全て `https://example.com/pwa/` といったサブディレクトリに全て入れ込んでしまい、 PDF 出力だけをその外にある URL で実行する 2. PDF 出力だけ、 URL 上は別のドメインで配信する ※他に「PDF 出力への URL だけ敢えて `http://` でアクセスし、 Safari で開かせた後に `https://` へとリダイレクトさせる」という実装だけなら簡単な方法もありますが、あまり綺麗ではありませんし、一時的にでも insecure な経路を入れ込むことになるので推奨はしません 何れにせよ、 Flask でどうやるかというよりは、 **どのような URL 構成にするか、どのようにデプロイするか** といった部分の問題かと思われます。 因みに、 Android の Chrome や Firefox では、仮に scope 内へのリンクであったとしても `target="_blank"` や `window.open()` を使うと PWA の外側で開くことが可能になるはずですが、残念ながら iOS の Safari では対応していなかったように思います。この辺りは、まだまだ iOS Safari での PWA 対応が後追いで弱いということでしょうね (Notification も使えませんし) 。