2013-01-03 48 views
2

我正在設置Android設備按鈕以與我的應用程序一起工作。按照PG /科爾多瓦的文件,我應該能夠使用我的Nexus 7作爲測試設備時,只需添加一個監聽器,如Android設備按鈕和PhoneGap /科爾多瓦

document.addEventListener("backbutton", function() { 
    console.log('Back Button Pressed.'); 
}, false); 

但是,沒有任何反應。

我也曾嘗試直接添加覆蓋到Java:

@Override 
public void onBackPressed() { 
    super.loadUrl("javascript:onBackKeyDown()"); 
    return; 
} 

但再次,似乎什麼也不做。任何人有這個問題或修復?

謝謝。

回答

1

首先,你的功能寫入控制檯。

document.addEventListener("backbutton", function() { 
    console.log('Back Button Pressed.'); 
}, false); 

你應該設置你的設備作爲調試工具(,你會發現下面的快速提示如何做到這一點,更多信息請here

  • 將手機連接到PC
  • 在你的手機上:檢查USB調試; 設置=>開發者選項=> USB調試
  • 在手機上:檢查未知來源; 設置>>應用>>來源不明=真
  • 您的設備添加到ADT(在你的SDK)
  • 直接從PC到移動運行項目:該項目 右鍵=>運行方式=>選擇您的設備

NOW在後退按鈕上單擊「後退按鈕」。將被打印在Eclipse的控制檯中。

如果您的設備未連接到計算機,或者您的設備未設置爲調試工具,則不會有任何更改。

在一般情況下如果您在設備上進行測試而不將其設置爲調試工具,則使用「alert()」而不是「console.log()」。

旁邊,不使用本地Java,使用原來的documentation of Cordova,只需添加以下代碼到你的JavaScript文件:

function onLoad() { 
    document.addEventListener("deviceready", onDeviceReady, false); 
} 

// Cordova is loaded and it is now safe to call Cordova methods 
// 
function onDeviceReady() { 
    // Register the event listener 
    document.addEventListener("backbutton", onBackKeyDown, false); 
} 

// Handle the back button 
// 
function onBackKeyDown() { 
// whatever you want to do 
alert('Back button Pressed'); 
} 

,那麼你應該「的onLoad()」添加到身體標記:

<body onLoad="onLoad()">