PhoneGap API介紹:Events

事件類型

backbutton

  • 當用戶在Android系統上點擊後退按鈕的時候觸發此事件。
  1. document.addEventListener("backbutton", yourCallbackFunction, false); 

詳述

  • 如果你需要在Android系統上重載默認後退按鈕的行爲,可以通過註冊一個事件監聽器來監聽“backbutton”事件。它不再需求調用任何其他方法來重載後退按鈕行爲,現在你只需要爲“backbutton”事件註冊一個事件監聽器。
  • 通常情況下,你需要在接收到PhoneGap的“deviceready”事件後,使用document.addEventListener來附加該事件監聽器。

支持的平臺

  • Android

簡單的範例

  1. document.addEventListener("backbutton", onBackKeyDown, false); 
  2.      
  3. function onBackKeyDown() { 
  4.    // 處理後退按鈕操作 

完整的範例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>PhoneGap Device Ready Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 當PhoneGap加載完畢後調用onDeviceReady回調函數 
  10.     // 此時,該文件已加載完畢但phonegap.js還沒有加載完畢。 
  11.     // 當PhoneGap加載完畢並開始和本地設備進行通訊, 
  12.     // 會觸發“deviceready”事件 
  13.     document.addEventListener("deviceready", onDeviceReady, false); 
  14.      
  15.     // PhoneGap is loaded and it is now safe to make calls PhoneGap methods 
  16.     function onDeviceReady() { 
  17.         // 註冊回退按鈕事件監聽器 
  18.            document.addEventListener("backbutton", onBackKeyDown, false); 
  19.     } 
  20.      
  21.     // 處理後退按鈕操作 
  22.     function onBackKeyDown() { 
  23.     } 
  24.  
  25. </script> 
  26. </head> 
  27. <body> 
  28. </body> 
  29. </html> 

deviceready

  • 當PhoneGap被完全加載後會觸發該事件。
  1. document.addEventListener("deviceready", yourCallbackFunction, false); 

詳述

  • 這是每個PhoneGap應用程序都會用到的重要事件。
  • PhoneGap包含兩套代碼庫:本地代碼庫和JavaScript代碼庫。當本地代碼加載時會顯示一個自定義的加載圖片,但是,JavaScript只是在DOM加載後就被加載。這潛在的說明用戶的Web應用程序可以在PhoneGap加載完成之前調用相應的JavaScript函數。
  • PhoneGap一旦完全加載就會觸發deviceready事件。當設備觸發該事件後,用戶就可以安全進行PhoneGap函數調用。
  • 通常情況下,你會希望在HTML文件的DOM加載完畢後使用document.addEventListener附加一個事件監聽器。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 5.0或更高版本)
  • iPhone

簡單的範例

  1. document.addEventListener("deviceready", onDeviceReady, false); 
  2.  
  3. function onDeviceReady() { 
  4.     // 現在可以安全使用PhoneGap API 

完整的範例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>PhoneGap Device Ready Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 當PhoneGap加載完畢後調用onDeviceReady回調函數 
  10.     // 此時,該文件已加載完畢但phonegap.js還沒有加載完畢。 
  11.     // 當PhoneGap加載完畢並開始和本地設備進行通訊, 
  12.     // 就會觸發“deviceready”事件。 
  13.     document.addEventListener("deviceready", onDeviceReady, false); 
  14.      
  15.     // PhoneGap加載完畢,現在可以安全地調用PhoneGap方法 
  16.     function onDeviceReady() { 
  17.        // 現在可以安全使用PhoneGap API 
  18.     } 
  19.  
  20. </script> 
  21. </head> 
  22. <body> 
  23. </body> 
  24. </html> 

BlackBerry (OS 4.6) 的特異情況

  • RIM的BrowserField(網頁瀏覽器視圖)不支持自定義事件,所以deviceready事件不會被觸發。
  • 一種解決方法是一直手動查詢PhoneGap.available方法直到PhoneGap完全加載完畢。
  1. function onLoad() { 
  2.     // BlackBerry OS 4瀏覽器不支持自定義事件。 
  3.     // 因此通過手動方式等待,直到PhoneGap加載完畢。 
  4.     var intervalID = window.setInterval( 
  5.         function() { 
  6.              if (PhoneGap.available) { 
  7.              window.clearInterval(intervalID); 
  8.              onDeviceReady(); 
  9.          } 
  10.      }, 
  11.      500 
  12.     ); 
  13.  
  14. function onDeviceReady() { 
  15.     // 現在可以安全地調用PhoneGap API 

menubutton

  • 當用戶在Android系統上點擊菜單按鈕的時候觸發此事件。
  1. document.addEventListener("menubutton", yourCallbackFunction, false); 

詳述

  • 如果你需要在Android系統上重載默認菜單按鈕的行爲,可以通過註冊一個事件監聽器來監聽“menubutton”事件。
  • 通常情況下,你需要在接受到PhoneGap的“deviceready”事件後,使用document.addEventListener來附加該事件監聽器。

支持的平臺

  • Android

簡單的範例

  1. document.addEventListener("menubutton", onMenuKeyDown, false); 
  2.   
  3. function onMenuKeyDown() { 
  4.     //處理菜單按鈕操作 

完整的範例

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
  2. <html> 
  3. <head>     
  4. <title>PhoneGap Device Ready Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 當PhoneGap加載完畢後調用onDeviceReady回調函數 
  10.     // 此時,該文件已加載完畢但phonegap.js還沒有加載完畢。 
  11.     // 當PhoneGap加載完畢並開始和本地設備進行通訊, 
  12.     // 會觸發“deviceready”事件 
  13.     document.addEventListener("deviceready", onDeviceReady, false); 
  14.      
  15.     // PhoneGap加載完畢,現在可以安全地調用PhoneGap方法 
  16.     function onDeviceReady() { 
  17.         // 註冊菜單按鈕事件監聽器 
  18.         document.addEventListener("menubutton", onMenuKeyDown, false); 
  19.     } 
  20.      
  21.     // 處理菜單按鈕操作 
  22.     function onMenuKeyDown() { 
  23.     } 
  24.  
  25. </script> 
  26. </head> 
  27. <body onload="onLoad()"> 
  28. </body> 
  29. </html> 

pause

  • 當PhoneGap應用程序被放到後臺的時候觸發此事件。
  1. document.addEventListener("pause", yourCallbackFunction, false); 

詳述

  • PhoneGap包含兩套代碼庫:本地代碼庫和JavaScript代碼庫。當本地代碼將應用程序放到後臺的時候會觸發pause事件。
  • 通常情況下,你會希望一旦接收到PhoneGap的“deviceready”事件就使用document.addEventListener附加一個事件監聽器。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 5.0或更高版本)
  • iPhone

簡單的範例

  1. document.addEventListener("pause", onPause, false); 
  2.  
  3. function onPause() { 
  4.    // 處理pause事件 

完整的範例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>PhoneGap Device Ready Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.      
  9.     // 當PhoneGap加載完畢後調用onDeviceReady回調函數。 
  10.     // 此時,該文件已加載完畢但phonegap.js還沒有加載完畢。 
  11.     // 當PhoneGap加載完畢並開始和本地設備進行通訊, 
  12.     // 就會觸發“deviceready”事件。 
  13.     document.addEventListener("deviceready", onDeviceReady, false); 
  14.      
  15.     // PhoneGap加載完畢,現在可以安全地調用PhoneGap方法 
  16.     function onDeviceReady() { 
  17.         document.addEventListener("pause", onPause, false); 
  18.     } 
  19.      
  20.     // 處理pause事件 
  21.     function onPause() { 
  22.     } 
  23.  
  24. </script> 
  25. </head> 
  26. <body> 
  27. </body> 
  28. </html> 

iOS的特異情況

  • 在pause事件處理過程中,不但任何通過Objective-C的調用不會工作,而且任何交互性的調用也不會工作,比如警示功能。這意味着你不能調用console.log(及其變種),且任何來自插件或PhoneGap的API的調用都不會有所反應。這些調用只有在應用程序恢復後纔會被處理(在下一輪運行循環中處理)。

resume

  • 當PhoneGap應用程序被恢復到前臺運行的時候觸發此事件。
  1. document.addEventListener("resume", yourCallbackFunction, false); 

詳述

  • PhoneGap包含兩套代碼庫:本地代碼庫和JaPhoneGap包含兩套代碼庫:本地代碼庫和JavaScript代碼庫。當本地代碼將應用程序從後臺提取到前臺運行的時候觸發resume事件。
  • 通常情況下,你會希望一旦接收到PhoneGap的“deviceready”事件就使用document.addEventListener附加一個事件監聽器。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 5.0或更高版本)
  • iPhone

簡單的範例

  1. document.addEventListener("resume", onResume, false); 
  2.  
  3. function onResume() { 
  4.    // 處理resume事件 

完整的範例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>PhoneGap Device Ready Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 當PhoneGap加載完畢後調用onDeviceReady回調函數。 
  10.     // 此時,該文件已加載完畢但phonegap.js還沒有加載完畢。 
  11.     // 當PhoneGap加載完畢並開始和本地設備進行通訊, 
  12.     // 就會觸發“deviceready”事件。 
  13.     document.addEventListener("deviceready", onDeviceReady, false); 
  14.      
  15.     // PhoneGap加載完畢,現在可以安全地調用PhoneGap方法。 
  16.     function onDeviceReady() { 
  17.         document.addEventListener("resume", onResume, false); 
  18.     } 
  19.      
  20.     // 處理resume事件 
  21.     function onResume() { 
  22.     } 
  23.      
  24. </script> 
  25. </head> 
  26. <body> 
  27. </body> 
  28. </html> 

online

  • 當PhoneGap應用程序在線(連接到因特網)的時候觸發此事件。
  1. document.addEventListener("online", yourCallbackFunction, false); 

詳述

  • 當應用程序的網絡連接改變爲online的時候觸發online事件。
  • 通常情況下,你會希望一旦接收到PhoneGap的“deviceready”事件就使用document.addEventListener附加一個事件監聽器。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 5.0或更高版本)
  • iPhone

簡單的範例

  1. document.addEventListener("online", onOnline, false); 
  2.   
  3. function onOnline() { 
  4.     // 處理online事件 

完整的範例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>PhoneGap Device Ready Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 當PhoneGap加載完畢後調用onDeviceReady回調函數。 
  10.     // 此時,該文件已加載完畢但phonegap.js還沒有加載完畢。 
  11.     // 當PhoneGap加載完畢並開始和本地設備進行通訊, 
  12.       // 就會觸發“deviceready”事件。 
  13.     document.addEventListener("deviceready", onDeviceReady, false); 
  14.      
  15.     // PhoneGap加載完畢,現在可以安全地調用PhoneGap方法。 
  16.     function onDeviceReady() { 
  17.         document.addEventListener("online", onOnline, false); 
  18.     } 
  19.      
  20.     // 處理online事件 
  21.     function onOnline() { 
  22.     } 
  23.  
  24. </script> 
  25. </head> 
  26. <body> 
  27. </body> 
  28. </html> 

iOS的特異情況

  • 在初次啓動的情況下,第一個online事件(如果有的話)將需要至少1秒鐘才被觸發。

offline

  • 當PhoneGap應用程序離線(沒有連接到因特網)的時候觸發此事件。
  1. document.addEventListener("offline", yourCallbackFunction, false); 

詳述

  • 當應用程序的網絡連接改變爲offline的時候觸發offline事件。
  • 通常情況下,你會希望一旦接收到PhoneGap的“deviceready”事件就使用document.addEventListener附加一個事件監聽器。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 5.0或更高版本)
  • iPhone

簡單的範例

  1. document.addEventListener("offline", onOffline, false); 
  2.   
  3. function onOffline() { 
  4.     // 處理offline事件 

完整的範例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>PhoneGap Device Ready Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 當PhoneGap加載完畢後調用onDeviceReady回調函數 
  10.     // 此時,該文件已加載完畢但phonegap.js還沒有加載完畢。 
  11.     // 當PhoneGap加載完畢並開始和本地設備進行通訊, 
  12.       // 就會觸發“deviceready”事件。 
  13.     document.addEventListener("deviceready", onDeviceReady, false); 
  14.      
  15.     // PhoneGap加載完畢,現在可以安全地調用PhoneGap方法。 
  16.     function onDeviceReady() { 
  17.         document.addEventListener("offline", onOffline, false); 
  18.     } 
  19.      
  20.     // 處理offline事件 
  21.     function onOffline() { 
  22.     } 
  23.  
  24. </script> 
  25. </head> 
  26. <body> 
  27. </body> 
  28. </html> 

iOS的特異情況

  • 在初次啓動的情況下,第一個offline事件(如果有的話)將需要至少1秒鐘才被觸發。

Searchbutton

  • 當用戶在Android系統上點擊搜索按鈕的時候觸發該事件。
  1. document.addEventListener("searchbutton", yourCallbackFunction, false);  

詳述

  • 如果你需要在Android系統上重載默認搜索按鈕的行爲,可以通過註冊一個事件監聽器來監聽“searchbutton”事件。
  • 通常情況下,你需要在接受到PhoneGap的“deviceready”事件後,使用document.addEventListener來附加該事件監聽器。

支持的平臺

  • Android

簡單的範例

  1. document.addEventListener("searchbutton", onSearchKeyDown, false); 
  2.   
  3. function onSearchKeyDown() { 
  4.     // 處理搜索按鈕操作 

完整的範例

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
  2. <html> 
  3. <head>     
  4. <title>PhoneGap Device Ready Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 當PhoneGap加載完畢後調用onDeviceReady回調函數。 
  10.     // 此時,該文件已加載完畢但phonegap.js還沒有加載完畢。 
  11.     // 當PhoneGap加載完畢並開始和本地設備進行通訊, 
  12.     // 會觸發“deviceready”事件。 
  13.     document.addEventListener("deviceready", onDeviceReady, false);   
  14.      
  15.     // PhoneGap加載完畢,現在可以安全地調用PhoneGap方法 
  16.     function onDeviceReady() { 
  17.         // 註冊搜索按鈕事件監聽器 
  18.         document.addEventListener("searchbutton", onSearchKeyDown, false); 
  19.     } 
  20.      
  21.     // 處理搜索按鈕操作 
  22.     function onSearchKeyDown() { 
  23.     } 
  24.  
  25. </script> 
  26. </head> 
  27. <body onload="onLoad()"> 
  28. </body> 
  29. </html> 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章