質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
PWA(Progressive Web Apps)

PWA(Progressive Web Apps)は、アプリのようなWebサイトを指します。仕様が異なる様々なデバイスで表示でき、インストールも不要。さらに訪問し続けることでユーザーについて学び、強力なPWAとなります。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4319閲覧

PWAからSafariを開きたい

koromooo_

総合スコア8

PWA(Progressive Web Apps)

PWA(Progressive Web Apps)は、アプリのようなWebサイトを指します。仕様が異なる様々なデバイスで表示でき、インストールも不要。さらに訪問し続けることでユーザーについて学び、強力なPWAとなります。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/04/12 04:50

編集2019/04/12 04:55

現在、Flaskを使って既存のWebアプリをPWAに対応させています。
アプリの機能でPDFをページに表示する機能があります。
PWA対応以前はSafariの「プリント」ボタンで印刷ができていたものがPWAにするとボタンそのものがなく不可能になり困っています。
そこで、PDFを出力すると同時にその出力結果を別のアプリ(PDFを印刷できるもの)に遷移させようと考えています。
一通り調べてみたのですが、具体的な方法が分からず困っています。
PWAからSafariを開く方法、もしくは他の対応方法がありましたら教えて頂ければ幸いです。
よろしくお願いします。

Python

1@app.route('/result_pdf',methods=["POST","GET"]) 2@auth.login_required 3def PDFPage(): 4 //処理 5 response.headers['Content-Type'] = 'application/pdf' 6 response.headers['Content-Disposition'] = 'inline; filename=%s.pdf' % 'yourfilename' 7 return response

このresponseでPDFを返しているのですが、これをSafariで開きたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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 も使えませんし) 。

投稿2019/04/19 06:28

argparse

総合スコア1017

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問