2011-12-16 13 views
-1

私はweb-app kool-aidを飲んで、AndroidネイティブアプリをビルドすることからWebアプリを構築することに切り替えています。Androidウェブブラウザのバグ:アドレスバーはコンテンツを非表示にします

しかし、私はアドレスバー(更新:具体的には、Androidの2.3.3を実行している私のHTC欲望Zは、私はそれがどのように影響するか、他の多くのバージョンがわからない):とAndroidのブラウザで本当に悪いの問題を抱えている

  • 問題1:ページが読み込まれている間、アドレスバーには内容の上位~30ピクセルの が表示されません。
  • 問題2: 状況によっては、アドレスバーが消えない - これは接続速度が遅いときには 私のポートレートで発生します。

場合によっては、アドレスバーがコンテンツの上位30ピクセルを完全に非表示にすることがあります。これはひどく壊れています。

私はこの問題を解決しようとする another StackOverflow questionからいくつかのコードを借り:

if (navigator.userAgent.match(/Android/i)) { 
    window.scrollTo(0,0); // reset in case prev not scrolled 
    var nPageH = $(document).height(); 
    var nViewH = window.outerHeight; 
    if (nViewH > nPageH) { 
     nViewH = nViewH/window.devicePixelRatio; 
     $('BODY').css('height',nViewH + 'px'); 
    } 
    window.scrollTo(0,1); 
    } 

をしかし、確実に動作するようには思えない - それは恐ろしい解決策だと言うまでもありません。私に何ができる?

+0

アンドロイドブラウザを使用して読み込んでAndroidアプリとしてリリースするウェブアプリを開発していますか? –

+0

いいえ、私はちょうどウェブアプリを書いています - 市場に何かをリリースする予定はありません。 – Richard

答えて

0

あなたの携帯電話とあなたの携帯電話のAndroidのバージョンは何ですか? Imは銀河を持っていますs2 - アドレスバーはオーバーレイとして実装されていませんが、実際のコンテンツはアドレスバーの後ろではなく、下にあります。下にスクロールするとアドレスバーが上になり、もう表示されなくなります。とにかく、それはバグではなく、それは機能です!あなたがそれをするなら、あなたが一度あなたのサイトに入ったら、ユーザーは去ることができませんでした。この「迷惑な」アドレスバーが欲しくない場合は、WebViewの「通常の」Androidアプリを作成し、そこに目的のサイトを読み込みます。

+0

私はAndroid 2.3.3でHTC Desire Zを使用しています。間違いなくバグです!アドレスバーは、サイトがロードされても一度も上に移動しないので、隠されたコンテンツが表示され、電話のステータスバーが表示されなくなります。それはすぐに起こるはずです。 – Richard

+0

そして、はい、私はAndroidアプリを構築することができますが、Googleは人々にWebアプリを構築したいかどうかを尋ねますか? – Richard

+0

@リチャード明瞭にするために、最後のステートメントに何かを追加したい場合は、edit functionallityを使用してください。それは正解です。問題は、もしあなたのアプリがどんなマーケット(アンドロイド、アプリストア)にもないなら、あなたのウェブアプリは簡単に見つからないだろう。あなたはちょうどwebviewを代表するあなたのアンドロイド/ iphoneアプリで非常に基本的なスセルトンを作成します。結果:あなたのアプリはアプリマーケットに表示されます+あなたのアプリは非常にダイナミックです(ウェブアプリ以外の機能を使用することができます)+ブラウザ固有の問題は発生しません。どこでも同じ! – poitroae

0

ここではスクロールせずにアドレスバーを即座に削除するNON-jQueryソリューションがあります。また、ブラウザの向きを回転させると動作します。

function hideAddressBar(){ 
    if(document.documentElement.scrollHeight<window.outerHeight/window.devicePixelRatio) 
    document.documentElement.style.height=(window.outerHeight/window.devicePixelRatio)+'px'; 
    setTimeout(window.scrollTo(1,1),0); 
} 
window.addEventListener("load",function(){hideAddressBar();}); 
window.addEventListener("orientationchange",hideAddressBar()); 

iPhoneでも動作するはずですが、テストできませんでした。

関連する問題