スマホでPDFがダウンロードできない原因

スマホでPDFがダウンロードできない原因

開発中のサイトで、スマートフォンではpdfのダウンロードができないことがありました。最終的にダウンロードできるようになりましたが、条件が複雑怪奇だったので、今回はこの話題にしたいと思います。

関連記事:

一瞬でメッセージが消える

開発中のサイトにはBasic認証がかかっていました。pdfのダウンロードリンクをクリックし、ID/パスワードを入力すると「ダウンロードを開始します・・・」というメッセージが表示されるのですが、このメッセージが一瞬で消えていなくなります。

Screenshot_2015-11-26-18-42-42-s

Basic認証が原因かと思い、pdf拡張子のURLだけ、Basic認証を外してみました。が、何も変化はなく、一瞬で「ダウンロードを開始します・・・」が消えてしまいます。

条件がもう一つあった

実はこのサイト、テストサイトだったので自己署名証明書を使っていました。これを認証済みの正しいサーバー証明書に置き換えたところ、pdfがダウンロードできるようになりました。

この後、Basic認証を設定したところダウンロードできなくなってしまったので、まとめると「認証済みサーバー証明書」+「認証なし」の両方の条件がpdfダウンロードには必要、ということになります。

ブラウザによる違いもあり

改めて各種ブラウザで構成による動作の違いを調べてみました。

■Huawei P8Lite(Android 5.0)

構成標準ブラウザChrome
HTTP+Basic認証なしOKOK
HTTP+Basic認証ありNGOK
HTTPS+Basic認証なしOKOK
HTTPS+Basic認証ありNGOK
HTTPS(自己署名)+Basic認証なしNGNG
HTTPS(自己署名)+Basic認証ありNGNG

■Xperia GX(Android 4.1)Huawei P8Lite

構成標準ブラウザChrome
HTTP+Basic認証なしOKOK
HTTP+Basic認証ありNGOK
HTTPS+Basic認証なしOKOK
HTTPS+Basic認証ありNGOK
HTTPS(自己署名)+Basic認証なしNGNG
HTTPS(自己署名)+Basic認証ありNGNG

■iPhone 6(iOS 8.0)

構成SafariChrome
HTTP+Basic認証なしOKOK
HTTP+Basic認証ありOKOK
HTTPS+Basic認証なしOKOK
HTTPS+Basic認証ありOKOK
HTTPS(自己署名)+Basic認証なしOKOK
HTTPS(自己署名)+Basic認証ありOKOK

iOSは問題ありませんが、Androidは標準ブラウザとChromeとで動作が異なるという結果でした。標準ブラウザとChromeとではpdfをブラウザ内に表示するか否かが異なるので、おそらくこの表示方法の違いが影響したようです。

pdfがダウンロードできない場合には、Basic認証を外し、SSLの場合には正しいサーバー証明書を使うようにしましょう。

Page Top