2013-06-14 6 views
6

Tôi đang sử dụng phonegapand tôi đang đăng ký backbutton onDeviceReady Chức năng nhưng nhận được chức năng được gọi khi được nhấp vào nút quay lại của thiết bị. và tôi đã thêmbackbutton trong phonegap không nhận được đăng ký và không hoạt động đúng

<script src="lib/cordova-2.6.0.js"></script> 

document.addEventListener("backbutton", onBackClickEvent, false); 

function onBackClickEvent() { 
    alert("back onBackClickEvent");  
} 

Chức năng onBackClickEvent() này không được gọi, tôi chưa bao giờ thấy cảnh báo đó bật lên. Tôi cũng nhận được lỗi của Tham chiếu Không bắt buộc: cordova không được xác định

lỗi có thể là gì Xin hãy đề nghị tôi. Cảm ơn trước.

+0

này của tôi trả lời dưới đây. – Maulik

Trả lời

4

tôi có câu trả lời cho câu hỏi của tôi. Tôi đã đấu tranh và nhiều nhà phát triển cố gắng giải quyết nó và khi tôi tìm thấy sai lầm ngớ ngẩn, tôi thấy mình ngớ ngẩn đến vậy.

tôi đang viết

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

thay vì

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

thats tại sao tôi đang nhận được một cordova lỗi không được xác định và không có người nghe khác đang nhận được đăng ký.

3

Đối với nút quay lại tôi sử dụng này

//Android back button handler methods 
$(document).ready(function() 
{ 
document.addEventListener("deviceready", setOverrideBackbutton, false); 
}); 

/** 
* Allow override of the back button on Android platforms 
*/ 
function setOverrideBackbutton() 
{ 
if (typeof device != "undefined" && device.platform == "Android") 
{ 
    navigator.app.overrideBackbutton(true); 
} 
document.addEventListener("backbutton", backButtonTap, true); 
} 

/** 
* Callback after a backbutton tap on Android and windows platforms. 
* Do nothing. 
*/ 
function backButtonTap() 
{ 
//Do not remove 
} 
+0

Điều này không hoạt động. Cordova 3.7 – Kvk

1

pls kiểm tra xem đường dẫn và tên tập tin để cordova.js của bạn là đúng. đảm bảo bạn đã kiểm tra tệp cordova.jar đúng và libs riêng tư của Android trong thuộc tính dự án-> Java Build Path-> Đặt hàng & Xuất.

Để biết thêm Thông tin kiểm tra này link

và nếu bạn nhập nhiều hơn một file sau đó đặt các tập tin cordova.js trước file other.js và nó sẽ làm việc.

và Chỉ cần sử dụng

<script src="cordova-2.6.0.js"></script> 

thay vì

và cũng kiểm tra này link1 & link2

5

Đừng quên để gọi là "deviceready" sự kiện.

Từ PhoneGap doc:

This is a very important event that every Cordova application should use.

Cordova consists of two code bases: native and JavaScript. While the native code is loading, a custom loading image is displayed. However, JavaScript is only loaded once the DOM loads. This means your web application could, potentially, call a Cordova JavaScript function before it is loaded.

The Cordova deviceready event fires once Cordova has fully loaded. After the device has fired, you can safely make calls to Cordova function.

Hãy thử điều này

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

function onDeviceReady() 
{ 
    document.addEventListener("backbutton", onBackClickEvent, false); 
} 

function onBackClickEvent() 
{ 
    alert("back onBackClickEvent");  
} 
4

Tôi gặp lỗi này sau khi nâng cấp lên cordova 3.1. Hóa ra rằng điều này phải được thêm một cách rõ ràng trong config.xml phonegap 3. * trở đi.

<feature name="App"> 
     <param name="android-package" value="org.apache.cordova.App" /> 
    </feature> 

Xem séc link

+0

Sử dụng 2.9 và sửa lỗi này cũng có tác dụng đối với tôi. –