2013-03-01 4 views
8

私は、スプライトシートを使用して「ビデオを再生する」Webページを持っています。このページはモバイルに最適化されているため、AndroidおよびiOS WebViewに読み込むことができます。私が知りたいのは、ページが表示されてからビデオが再生できることだけです。私はWebViewがそれ自体を提示するのに遅れているため、ユーザーはビデオの中間ストリームをキャッチすることを望んでいません。JavaScriptを使用してWebViewが表示されるかどうかを調べる方法/

一部の開発者は、ユーザーがページを表示できるようにする前に、ページ全体がページからすべてのアセットを取り込むまで待つことができます。だから、その前に "ビデオ"を開始したくない。私はwindow.onloadに頼ることはできません.WebViewが画面に表示されていない場合でも、イベントが発生するためです。

これはクライアントサイドから、JavaScriptを使用して、どのようにして達成できますか?

[編集]私は、ネイティブWebViewを制御できないことを意味しています。オンスクリーンではないWebViewにWebページをロードして、ビューをプッシュするか、後でオンスクリーンレイアウトに追加することができます。私の問題は、私のWebページのURLがWebViewに読み込まれたときに、WebViewが画面上に表示されたことを私が知ることができないということです。

+2

jQuery $(document).ready(function(){//ビデオを表示するコード})を試しましたか? – Stiger

+1

を単純な修正として、 'setTimeout()'を使ってアニメーションにわずかな遅延を追加するだけです。 – kennypu

+1

ええと、私はjQueryをまったく使用していません。その 'ready'関数のためだけにそのライブラリをインクルードするのは良い考えですか?通常のJavaScriptの同等のものは何ですか? – user2122422

答えて

2

Safari Web Content Guideをご覧ください。 [サポートされるイベント]テーブルまでスクロールします。私は、pageshowイベントがあなたが望んでいることをすると思っています(または期待しています)。 focusイベントもあります。

は、私は、Androidとあまりよく知って同じくらい簡単

<body onpageshow="onPageShow();"> 

ようになり、モバイルSafariのため、これらのイベントを使用しているように見えますが、私は実際に素早くそれに見ていきます。

EDIT:onpageshowソリューションは、Android 2.2 で同じよ​​うに動作し、それがiOSの4.0と上記の場合のように上記の必要があります。それがあなたがそれを必要とする方法で動作するかどうかについては、私は完全にはわかりません。お知らせ下さい!

+0

答えをありがとう!私はテストする機会がありませんでしたが、私は結果を報告します。再度、感謝します – user2122422

1

JavaScriptを使用してウェブビューを制御することはできません。アプリのデザインを変更するのに遅すぎることがなければ、ネイティブAPIを使用するとウェブビューをより詳細に制御できます。

ビデオをロードする前に、ウェブページにタイムアウトを挿入することができます。それはショットの価値があるかもしれません。

1

あなたはphonegapライブラリを使用することができます

document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    // Now safe to use the PhoneGap API 
} 

phonegapハンドルイベントWebViewのでより多くのアクションのための非常に良いです。

関連する問題