上週用PhoneGap和JQuery作了一個Android的例子。 這個例子用來講明如何讀取一個應用的配置文件。javascript
開發環境的搭建就不在這裏描述了。html
先看一下代碼佈局:java
全部的工做都在assets/www/目錄下面。js目錄包含了三個js文件:phonegap.js , jquery.js , property.js.jquery
property目錄下面有一個app.properties文件。這個文件裏面有咱們這個app要用到一些配置項。property.js的做用就是把這個配置文件的內容讀出來。file.html是咱們的應用的入口。android
App.java就是把file.html load進來。ajax
import com.phonegap.DroidGap; import android.os.Bundle; public class App extends DroidGap { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/file.html"); } }
file.html:
<!DOCTYPE html> <html> <head> <title>Property Files</title> <script type="text/javascript" charset="utf-8" src="js/phonegap.1.4.1.js"></script> <script type="text/javascript" charset="utf=8" src="js/jquery-1.7.min.js"></script> <script type="text/javascript" charset="utf-8" src="js/property.js"></script> <script type="text/javascript" charset="utf-8"> function init(){ document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady() { var prop = new PropertyObj(); prop.loadPropertyFile(); navigator.notification.alert("app name:" + prop.name); } </script> </head> <body onload="init();"> <h1>Example</h1> <p>Property File</p> </body> </html>
property.js :
function PropertyObj(){ this.name = ""; }; PropertyObj.prototype.getName = function() { return this.name; }; PropertyObj.prototype.loadPropertyFile = function() { var name = ""; $.ajax({ url: 'property/app.properties', async: false, success: function(data){ console.log("load success."); var propArray = data.split("\n"); var length = propArray.length; for(var i=0;i<length;i++){ console.log(propArray[i]); } //for example name = propArray[0]; }, error: function(){ //should use default property. console.log("load failed."); } }); this.name = name; };
app.properties
app=NewAPP
PhoneGap支持File類型,能夠直接讀取Android系統裏的文件。在這裏,並無用這種方式。而是用Ajax調用的方式來讀取www目錄下的配置文件。這樣作的好處就是配置文件和咱們的程序在一個包裏面,不依賴具體手機或者平臺的文件目錄結構。app