0

Phonegap で向きが変わって困っています。私の計画は、向きが変わったときに CSS ファイルを変更することでした (おそらくそれはとにかく複雑な方法です) が、向きに依存するイベントを発生させるのに苦労しています。私は現在コードを使用しています:

window.onorientationchange = function() {

  navigator.notification.alert(
        'orientation change!',  // message
        'Portrait',            // title
        'buttton');              // buttonName

  if (window.matchMedia("(orientation: portrait)").matches){
      navigator.notification.alert(
        'now in portrait',  // message
        'Portrait',            // title
        'buttton');              // buttonName
  }
  else{
    alert("landscape")
  }
}

最初のアラート (向きが変わったとき) は問題ありませんが、2 つ目のアラート (特に横向きに変わったとき) は発生していません。私は Android バージョン 2.3.5 を使用しています。(この方法は、この質問でRazvanによって提案されました)

4

1 に答える 1

0

MediaQueryListオブジェクトにリスナーを設定する必要があります。たとえば、以下を参照してください。

メディアクエリ以外に、デバイスの向きの変更を取得する方法があります。例については、「mdnorientationchange」を検索してください。

  1. MediaQueryListオブジェクト'orientation'を作成します。add / removeListener、メディア、および一致が含まれます。
  2. リスナー'orientationListener'を作成します。メディアクエリの一致をテストします。
  3. 初期方向値を取得します
  4. 発生する変更をリッスンします

    var orientation = window.matchMedia("(orientation: portrait)"),
        orientationListener = function(mql) {
    
            if (mql.matches) {
                // Media query does match orientation portrait
            } else {
                // Media query does not match which should mean orientation is now landscape
            }
    
        };
    
    // Gets initial match
    
    orientationListener(orientation);
    
    // Listens for change
    
    orientation.addListener(orientationListener);
    
于 2013-02-18T16:52:13.213 に答える