geta1972TweetPocketCheckこんにちわ。相変わらずのマルチブラウザにおける仕様違いに辟易としている、下駄です。ブラウザアプリを開発していて、iPhoneだけに発生する現象を発見してしまい、おかげでこれまで作ったツールの不具合を同時に見つけてしまったという事を備忘録として残しておきます。以前に公開した画像アップローダの中で使用している、画像プレビュー機能ですが、http://wordpress.ideacompo.com/?p=14522スマートフォンで撮影された画像には、当たり前のようにexif情報がついていて、同時にorientation値として、画像の回転情報が含まれています。これがないと、写真が正常な向きで保持できなくなり、アップロードした後で横倒れしてしまう現象が発生してしまいます。プレビュー表示の際に適正な回転値を摘要して、アップロードした先でもそれを保持する必要があるのですが、今回はプレビューの時の表示のみでの話になります。正常に表示!!!!この時点でiPhoneでの問題があることに気がつく。iPhoneの問題を追求iPhoneでの撮影はhomeボタンが下側に来る撮影をしていたんですが、iphone端末事態を回転させて撮影してみます。homeボタンが右側に来るように撮影すると・・・正常に表示homeボタンが左側で撮影すると・・・回転異常!!!homeボタンが下で撮影すると・・・回転異常!!!どうやら、homeボタンが右側のみが正常という結果ですが、これはorientationの値が1の時で、回転情報が無い時と同じ状態であると分かります。プレビューでは、exifのorientation値を持っていると、それを加味して、画像を回転させる処理を行っているのですが、どうやら、これがiPhoneのみで不具合を誘発しているようでした。ようするに、iPhoneのプレビュー表示では、orientation値を無視すれば、正常に表示されるという状態であることがわかりました。思って、exif情報を削除(またはorientation値をすべて”1′′にする)と、アップロードした先で回転していない状態でアップロードされてしまうため、ここで至った結論としては、iPhoneでは、プレビュー表示の時のみ、orientation値を反映しないという対応しかないと考えられる。念の為iPad(手元にあったiPadpro)でプレビュー表示をしてみた所、iPhoneと同じ状態での表示となった。(不具合発生)iPadもiPhoneと同じ症状なので、端末判定を行おうとユーザーエージェントを見てみてびっくり!!!なんと、最新iPadOSのユーザーエージェントは、mac版safariとほぼ同じで、ipad判別のしようがないという事がわかりました。デバイス判定でontouchstartイベントの有無で判断してもいいのだが、なんとも悩ましい現状だ。Safari/605.1.15最後にiPhone-chromeで確認した結果・・・ここに来てiPhoneのchromeブラウザで見てみたらどうだろう???・・・・・・safariと同じ結果・・・これでどうやらiOSのスマホのみの現象であることが分かる。なんとも悩ましい事象だが、何とかこの事象をどこかの値で判別したい為、もう少し調査が必要であることがわかる。blob使用とfileAPIの箇所を徹底的に調査する必要がありそうだ・・・なるはやで解決して、対応結果をまたブログで報告したいと思います。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。