以前お伝えした「iPhoneWebアプリで、フルスクリーンモードを設定する方法」ですが、いろいろと触っていて気づいたことがあります。
それは、このフルスクリーンモードにすると、「onOrientationChange」イベントが発生しないということです。
寝ながらSafariでWebを閲覧するときに、意図せず画面回転が発生して非常に困るわけです。それを避けるために、上下反転させて使ったりするわけですが、このモードをうまく活かせばその苦労もなくなりますね。
と、ここから先は推測になるのですが、恐らく同様のモードがネイティブアプリ(HTMLレンダリングエンジン利用コンポーネント?)でも利用できるはずです。このブログを読まれた方、どなたか試していただけないでしょうか?
→追記:コメント欄で情報を頂きました。ネイティブアプリでも効果があるようです。これで寝ながらアプリが増加すれば、iPhoneの稼働時間がさらに増えそうですね。
→10月14日追記:ネイティブアプリでは、元々普通に構築すれば画面回転は反応しないということのようです。
→2009年1月10日追記:ファームウェア2.2で、画面回転はOffにならないように修正されています。
カンタンにまとめてみますと、結局、iPhoneOS2.1で実装されたというこのフルスクリーンモードでできることは次の3点になります。 ※当初「2.1」を「2.2」と誤記していました。
- 画面下部のツールバーの非表示化(apple-mobile-web-app-capable = yes) ※前後ページ移動、ブックマーク追加、ブックマーク呼び出しバーの非表示
- 画面上部のステータスバーの半透明化(apple-mobile-web-app-status-bar-style = black-translucent) ※キャリア表示、時計などの半透明化
- 画面回転機能のOff ※ファームウェア2.2で無効になっています。※onOrientationChangeが発生しなくなる
※1および2の記述方法は「iPhoneWebアプリで、フルスクリーンモードを設定する方法」をご参照ください。
ただし、画面遷移が発生すると、Safariの別ページ遷移処理が発生しますので少し見苦しい挙動になります。ここは可能な限り1ページに読み込んだ上で、「-webkit-transition-*」を使うことで画面遷移を行う工夫が必要になります。
いずれにしろ、(HTMLレンダリングエンジンを利用するネイティブアプリを含む)Webアプリの可能性が非常に広まったといえますね。
17時追記:Web巡回していると、フルスクリーン化ブックマークレットも見つけました。
だめだ目 / [iPhone]ネイティブアプリのようなWEBクリップを作るブックマークレット
早速GmailとかGoogleリーダーをフルスクリーンモードで開きたい!
と思いきや本家のほうが対応してないので、ブックマークレットで対応した。フルスクリーンWEBクリップをしたいページをsafariで開いて、このブックマークレットを実行する。
それから通常通り下部メニューの+をタップしてホーム画面に追加。あとはホーム画面から今クリップしたアイコンをタップするとメニューバーが表示されずネイティブアプリのような感じで開ける。
このモードで開くと通常のsafariのタブも無駄に開かないし良いかもしれん。
うーん、素晴らしいですね。
まさに日々進化するプラットフォームです。



試してみました!回転しないですねー
有益な情報ありがとうございます。
hayashi311さん、こんにちは。
いつもブログ読ませていただいてます。
情報ありがとうございます。
やはりネイティブアプリでも有効ですか!
使いどころによりますが、活用できれば結構便利そうですね。
[...] フルスクリーンモードで画面回転もOffになる | iPhone 3G Wiki blog (tags: iphone) [...]
iPod touch 2Gで試してみましたが、
Air Sharing、MobileFinder、はてなtouchのいずれでも
画面の回転を抑制できませんでした。
おそらく hayashi311さんが書いているのはネイティブアプリの話ではないと思います。
また、ネイティブアプリ内のブラウザでは、画面が回転しても
onOrientationChange イベントが発生しないようです。
これも上記3アプリで確認しました。
このエントリのはてブコメントに、ネイティブアプリでは普通に作ると回転しない、という記述がありました。
逆に言えば、画面の回転は各アプリが自前で実装しているということになります。
実際、safariのものと違い、Air Sharing の回転機能は上下逆にした場合でも追従して回転しました。
根本的に safari とは違う制御をしているのだと思います。
idealさん、こんばんは。
コメントありがとうございます。
なるほど、はてなブックマークでもそのようなコメントがありますね。
私がちょっと安易に想像と早合点で書いてしまったのですが
Safariとは違っているのですね。
そうだとすれば、やはり2.1のフルスクリーンモードは
通常のSafariとは異なるものでまだ隠されたものがありそうですね。