2013-01-16 20 views
37

私のアプリケーションが "ポートレート"モード用に設計されていないため、アプリケーション用に "Landscape"モードを強制しようとしています。 どうすればいいですか?"Landscape"方向モードを強制します

提案がありますか? ありがとう

答えて

47

これで、HTML5 Webアプリケーションマニフェストで可能になりました。下記参照。


オリジナルの答え:

あなたがウェブサイトまたは特定の方向でのWebアプリケーションをロックすることはできません。それはデバイスの自然な動作に逆らっています。

@media screen and (orientation:portrait) { 
    // CSS applied when the device is in portrait mode 
} 

@media screen and (orientation:landscape) { 
    // CSS applied when the device is in landscape mode 
} 

またはこのようなJavaScriptの姿勢変化イベント結合することにより:

document.addEventListener("orientationchange", function(event){ 
    switch(window.orientation) 
    { 
     case -90: case 90: 
      /* Device is in landscape mode */ 
      break; 
     default: 
      /* Device is in portrait mode */ 
    } 
}); 

Updateでの

あなたはこのようなCSS3メディアクエリを持つデバイスの向きを検出することができます11月12日:HTML5 Webアプリケーションマニフェストでこれが可能になりました。

html5rocks.comで説明したように、manifest.jsonファイルを使用して方向モードを強制できるようになりました。

あなたはJSONファイルにそれらの行を含める必要があります。

{ 
    "display":  "standalone", /* Could be "fullscreen", "standalone", "minimal-ui", or "browser" */ 
    "orientation": "landscape", /* Could be "landscape" or "portrait" */ 
    ... 
} 

そして、あなたはこのようなあなたのhtmlファイルにマニフェストを含める必要があります。

<link rel="manifest" href="manifest.json"> 

ないサポートが何であるかを正確に確認してください方向モードをロックするためのWebアプリケーションマニフェストには、しかし、クロムは確かにそこにあります。私は情報を持っているときに更新されます。

+0

Webappsもありますか? _______________________ – user1599537

+1

はい、webappsもあります。 iPhoneまたはiPadのホーム画面にWebサイトを保存しても、Webアプリケーションの向きが変わります。 –

+0

これはジンジャーブレッドのos(アンドロイド)のために動作しますか? – deostroll

22
screen.orientation.lock('landscape'); 

強制的にランドスケープモードに変更され、そのままになります。 Nexus 5でテスト済みです。

http://www.w3.org/TR/screen-orientation/#examples

+0

この方法は、他の方法と比較しながら、実装が簡単です。 –

+0

デフォルトのインターネットブラウザ(Chromeではなく)を使用してAndroidで動作しません - ご意見はありますか? –

関連する問題