2011-08-10 2 views
3

私はphonegapとjquery mobileを使用してAndroid携帯用のアプリを作成しています。 1ページにオリエンテーションをロックする可能性はありますか?例えば。ページ「マップ」がロードされ、向きが「ランドスケープ」モードにロックされる。jQueryモバイルロックの向き

答えて

5

本当にそうだと思います。 iOSアプリのxCodeでは不可能です。私が思い付くことができる唯一の修正は、... window.orientation

$(window).bind("orientationchange", function(){ 
    var orientation = window.orientation; 
    var new_orientation = (orientation) ? 0 : 180 + orientation; 
    $('body').css({ 
     "-webkit-transform": "rotate(" + new_orientation + "deg)" 
    }); 
}); 

これは危険な方法ですが、その唯一の方法を考えているにこのことができます

希望をあなたの体やラッパーacordingを回転させることである、聞かせてください私は知っている!

を参照してください:あなたはイベントのサイズを変更するウィンドウに結合することができhttp://jsfiddle.net/aalouv/sABRQ/1/


代替。

$(window).bind("resize", function(){ 
    var orientation = window.orientation; 
    var new_orientation = (orientation) ? 0 : 180 + orientation; 
    $('body').css({ 
     "-webkit-transform": "rotate(" + new_orientation + "deg)" 
    }); 
}); 

私はしばらく前にこの小さなスクリプトを書いた:それは乗算のiOSのSafariとAndroidでの非/後期/早期トリガ(1)orientationchangeのバグでコールバックバグのサイズを変更する修正。

(1)ブラウザの幅と高さが変更された後に時々起こることはありませんか?有線!

if (!(/iphone|ipad/gi).test(navigator.appVersion)) { 
    $(window).unbind("resize").bind("resize", function() { 
     $(window).trigger("orientationchange"); 
    }); 
} 

iphoneまたはipadでない場合は、ウィンドウでorientationchangeイベントがトリガーされます。

どのような関数をバインドする場合でも、サイズ変更を行うとorientationchangeがスローされます。

+0

ねえ返信用アンドレアス・アルのおかげで、私はあなたのソリューションを使用しようとするが、実際に私も、私ならばバインドさ機能に付属していません。画面を回転させます。私はjQueryの '.live'関数でもやっていますが、まだ動作しません。 –

+0

ああ、おそらくドキュメントにバインドされていて、ウィンドウにバインドされていない可能性があります。上記の編集を参照してください – andlrc

+0

そのアンドロイドのために!私はアンドロイドでオリエンテーションを変更することにいくつか問題があります。私はあなたが同じ結果をサイズ変更してアーカイブするのに使うことができます。しかし、iOSのサイズ変更については、すべてのオリエンテーションチェンジで最大10倍のトリガを受けるように注意してください。 – andlrc

8

私はmanifest.xmlを変更しようとしました。以下のようなあなたの活動のタグにscreenOrientation =「風景」属性:単純にアンドロイドを追加

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> 
    <activity android:label="@string/app_name" android:name=".Phonegap_AppName" 
     android:configChanges="orientation|keyboardHidden" android:screenOrientation="landscape"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
関連する問題