2013-03-01 29 views
8

Tôi có một trang web "phát video" bằng các trang ma. Trang được tối ưu hóa cho thiết bị di động, vì vậy trang có thể được tải vào Android và iOS WebViews. Tôi muốn biết là khi trang được hiển thị để chỉ sau đó tôi có thể phát video. Tôi không muốn người dùng nắm bắt luồng video giữa vì WebView chậm khi trình bày chính nó.Cách tìm hiểu xem WebView có được hiển thị/trên màn hình/hiển thị hay không bằng cách sử dụng JavaScript

Tôi có thể thấy một số nhà phát triển có thể đợi cho đến khi toàn bộ trang đã hoàn tất việc kéo tất cả nội dung từ trang trước khi hiển thị cho người dùng. Vì vậy, tôi không muốn "video" bắt đầu trước thời điểm đó. Tôi không thể dựa vào window.onload vì sự kiện đó sẽ kích hoạt ngay cả khi WebView không hiển thị trên màn hình hoặc hiển thị.

Làm thế nào tôi có thể thực hiện điều này từ phía máy khách, với một số JavaScript, tốt nhất?

[Chỉnh sửa] Để rõ ràng, tôi ngụ ý rằng tôi không có quyền kiểm soát WebView gốc. Bạn có thể tải các trang web vào một WebView mà không phải là trên màn hình và đẩy xem hoặc thêm nó vào bố trí trên màn hình tại một thời gian sau đó. Vấn đề của tôi là khi URL của trang web của tôi được tải vào một WebView, tôi không thể biết khi nào WebView xuất hiện trên màn hình.

+2

Bạn đã thử jQuery $ (tài liệu) .ready (function() {// code để hiển thị video}); – Stiger

+1

như là một sửa chữa đơn giản, tôi sẽ chỉ thêm một chút chậm trễ cho các hình ảnh động bằng cách sử dụng 'setTimeout()' – kennypu

+1

Hmm, tôi không sử dụng jQuery cả. Có nên đưa thư viện đó vào chức năng 'sẵn sàng' không? JavaScript tương đương ol 'thường xuyên là gì? – user2122422

Trả lời

2

Hãy xem Safari Web Content Guide. Cuộn xuống bảng Sự kiện được hỗ trợ. Tôi đang suy nghĩ (hoặc hy vọng) rằng sự kiện pageshow sẽ làm những gì bạn đang hy vọng. Ngoài ra còn có sự kiện focus.

Hình như sử dụng các sự kiện dành cho điện thoại di động Safari sẽ được dễ dàng như

<body onpageshow="onPageShow();"> 

Tôi không quen thuộc với Android, nhưng tôi sẽ xem xét nó thật nhanh chóng.

EDIT: Giải pháp onpageshow nên làm việc cùng một cách trong Android 2.2 trở lên giống như trong iOS 4,0 trở lên. Về việc liệu nó có hoạt động theo cách bạn cần, tôi không hoàn toàn chắc chắn. Cho tôi biết!

+0

Cảm ơn câu trả lời ! Tôi đã không có cơ hội để kiểm tra, nhưng tôi sẽ báo cáo lại với kết quả khi tôi làm. Cảm ơn một lần nữa – user2122422

1

Không thể kiểm soát chế độ xem web bằng JavaScript. Nếu không quá muộn để thay đổi thiết kế của ứng dụng, việc sử dụng API gốc sẽ cung cấp cho bạn nhiều quyền kiểm soát hơn đối với chế độ xem web.

Bạn có thể chèn thời gian chờ vào trang web trước khi tải video. Nó có thể đáng để bắn.

1

bạn có thể sử dụng thư viện phonegap:

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

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

phonegap là rất tốt cho xử lý sự kiện và hành động nhiều hơn trong webview.

Các vấn đề liên quan