Tôi đang xây dựng một Ứng dụng PhoneGap. Thật không may, khi triển khai các thiết bị iOS và mô phỏng sự kiện deviceready
sẽ không bao giờ xảy ra. Tôi đang sử dụng Phonegap 2.2.0.Phonegap deviceready không kích hoạt bằng Cordova 2.2.0 trong iOS
Khi tôi triển khai cùng một mã cho Android (sử dụng tệp cordova.js
dành riêng cho Android), ứng dụng sẽ hoạt động hoàn hảo.
Khi tôi thay thế deviceready
bằng ứng dụng jQuery- ready()
, ứng dụng cũng sẽ tải trên iOS, nhưng sau đó nó sẽ thiếu quyền truy cập vào các API cụ thể của thiết bị.
cordova.js
được tải vì tôi sẽ thấy thông báo cảnh báo đơn giản mà tôi đặt bên trong, tuy nhiên deviceready
không bao giờ kích hoạt và API sẽ không bao giờ bị lộ.
HTMLs My head
:
<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script> <!-- yes it is the iOS version -->
<script src="js/jquery-1.8.2.min.js"></script>
<script src="js/app.js"></script>
JS của tôi:
function doStuff(){
//app functionality
}
document.addEventListener('deviceready', doStuff, false);
Nhưng bằng cách nào đó những thứ sẽ chỉ được thực hiện trên Android ...
Đó dường như là nguyên nhân của vấn đề này, cảm ơn. Nhưng phải trung thực tôi vẫn còn một chút khó hiểu vì tôi không hoàn toàn hiểu tại sao tôi cần phải tổ chức một trình xử lý sự kiện bên trong một trình xử lý sự kiện khác. Phương thức 'addEventListener' sẽ có sẵn ngay từ đầu cũng như' document', phải không? Bạn có lời giải thích cho hành vi đó không? – m90
bạn có tải trọng cơ thể =? Điều đó đã làm tôi thất vọng lần đầu tiên. Tôi đồng ý với bạn nó sẽ là lạ nếu thiết lập xử lý sự kiện đôi là giải pháp. – olore
Không, tôi không có một cái ở nơi đầu tiên vì tôi đã không nhận được "logic", khi sử dụng nó "bằng cách nào đó" hoạt động, nhưng tôi đã tiếp tục sử dụng phương pháp mà thiết lập dự án mặc định sử dụng, xem câu trả lời của tôi phía dưới. – m90