2013-12-11 5 views

答えて

4

これは古い質問ですが、これは誰かにとって役に立ちます。私は以下の方法でこれを行いました:

  1. 検出されたiOSユーザエージェント;
  2. window.matchMediaを使用して、メディアクエリを使用してデバイスの種類と方向を判断します。私の実験の後、私が示したバナーと異なるデバイスのための実験window.innerHeight値を以下している
  3. window.innerHeight

をチェック。あなたは以下を見つけることができます:

  • iPhone 6 Plusのポートレート:544px;
  • iPhone 6 Plusランドスケープ:286px;
  • iPhone 6のポートレート:475px;
  • iPhone 6のランドスケープ:247px;
  • iPhone 5 & 5Sポートレート:376px;
  • iPhone 5 & 5Sランドスケープ:148px;
  • iPhone 2G、3G、4、4S、iPodタッチジェネレーション1-4ポートレート:288px;
  • iPhone 2G、3G、4、4S、iPod Touch generation 1-4の風景:148px

これは誰かを助けることを望みます。

2

スマートアプリケーションバナーはDOMに表示されませんが、ブラウザウィンドウの高さは84ピクセル(IOS7 + iPhone5で取得した数)になります。

この減少をwindow.innerHeightで使用して、SmartBannerが表示されるかどうかを判断します。

モバイルSafariがwindow.innerHeightほとんどで下のメニュー(株など)と、より大きな影響を与える他のビットを持っている(私は、ユーザーがiPhone4のかのiPhone5を持っているかどうかを判断する必要があります)最上部のアドレスバーは、利用可能な高さを69ピクセル減少させます(もう一度Safari Web Inspector経由で取得しました)。

+0

を私もこの溶液に来ていただきありがとうございます。 –

+0

これをチェックする方法window.innerHeigthとscreen.heightは、Smart App BannerがDOMに表示されない場合でも異なる値を表示します –

2

あなたはjqueryの使用している場合:

hasSmartBanner = window.innerHeight !== $(window).innerHeight(); 
関連する問題