iPhoneでメッセージアプリから開いたフォームではtarget=_blankが効かないという仕様
ニッチソリューションシリーズです。世の中の99.99%の人には関係ないけど、0.01%の困っている人向けの問題解決ネタです。検索キーワード的にこのページに辿りつけれるか疑問ですけど(*´ω`*)
問題となる現象
(1)iPhoneでWEBフォームの入力ページを開く
(2)入力を終えて確認画面へのボタンをタップする
(3)けど画面はクリアされ何も起こらない(振り出しに戻る)
という現象です。
でも、これは以下の条件を満たした時に発生します。
この障害が起こるケース
(1)WEBフォームのURLを開くときにフェイスブックメッセンジャー・LINE・ツィッターアプリのDMのリンクを踏んた。
(2)確認画面が「新しいウインドウで開く」ようになっている。
上記2条件を満たしている時、確認画面は開かず振り出しに戻ってしまいます。
詳しく説明すると。
(1)普通にiPhoneでブラウザ(サファリ)を起動し、フォーム入力のURLを入力した時は問題ありません。同じく、メールでそのURLを送ってもらって、URLをタップし、サファリが起動するのも問題ないです。問題になるのは前にも書いたようにライン・FBメッセンジャー・ツィッターアプリなどのリンクを踏んだ時に起こります。他のメッセージアプリでも起こるかもしれません(未確認)。
(2)普通に画面が切り替わる場合は問題ありません。問題になるのはあくまでも「新し画面で開く」タイプです。HTML的にいうとtarget="_blank"の時に発生します。
実際に起こったケースのスクショ
とある仕事で入力フォームのURLをメールすることがあります。ただ相手がキャリアメールだと届かないことも多いです。そんな時、相手から「URLメールが来ないです」とsnsアプリで連絡がくることがあります。ま、sns時代なので今更メール、しかもキャリアメールなんて使うのはアホらしいんですけど、やむを得ず使っています。んで、その相手に「ここのURLから提出してください」ってツィッターDMで返信したのが以下の図。
そしたら相手から「投稿する場合一番下のチェック画面をクリックですよね?何度やっても降り出しに戻るのですが」と返信が。え?そんなはずは無い、って自分でも試したら、本当にそうでした((((;゚Д゚))))
実は少し前にも同じ現象がありました。その時はFBメッセンジャーで同じURLを相手に送った。でも、相手は確認画面が表示されず最初に戻る、と。結局、その相手はPCから入力してもらいました。
というわけで原因が判明です。ツィッターDMやLINE、FBメッセンジャーでリンクをタップした時に開くブラウザは「100%サファリと同じ仕様ではない」ことに気づきました。そもそも「新しいウインドウで開く」ことが不可能な仕様です。
ちょっと何言ってるか解らない、って人も多いと思いますが(汗)
下の図はサファリ(iPhoneでホームページを見るアプリ)の画面です。みなさん見慣れているはずです。画面上部にURL入力欄があって、その右に「再読み込みボタン」がある。
そして画面最下部には5個のボタンがあるやつ。
一方、他のアプリでリンクをタップした時に表示されるアプリは微妙に違います。下はツィッターアプリで開いたブラウザ画面。
要はこのブラウザの時は「新しいウインドウで開く」という動作が出来ないんです。アプリ内ブラウザはサファリと挙動が異なるんですね。
問題解決策
この問題を解決するには2つの手段があります。まずはユーザー(入力する人)ができる解決方法。
もしもこの問題に遭遇したら、画面上下で□に↑矢印がついてるアイコンを探します。アプリによって少し違うけど、上向き矢印は共通です。
それをタップすると下図のような画面になるはずです(通常は日本語)。
その中に「サファリで開く」ってのがあると思います。それをタップすると、アプリ内のなんちゃってサファリ?ではなく正式なサファリで開けて「新しい画面で開く」機能も利用でき問題が解決します(*´ω`*)
web製作者側の問題解決方法
そんな感じでサブシステム的なサファリはtarget="_blank"が利用できない仕様のようです。新しい画面の是非はともかく、そーゆーケースもあるんだなーっていう。思わぬトラップでした(*´ω`*)
カテゴリ:PC・スマホ・WEBネタ