上周用PhoneGap和JQuery做了一个Android的例子。 这个例子用来说明如何读取一个应用的配置文件。
开发环境的搭建就不在这里描述了。
先看一下代码布局:

所有的工作都在assets/www/目录下面。js目录包含了三个js文件:phonegap.js , jquery.js , property.js.
property目录下面有一个app.properties文件。这个文件里面有我们这个app要用到一些配置项。property.js的作用就是把这个配置文件的内容读出来。file.html是我们的应用的入口。
App.java就是把file.html load进来。
1import com.phonegap.DroidGap; 2import android.os.Bundle; 3 4public class App extends DroidGap { 5 /** Called when the activity is first created. */ 6 @Override 7 public void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 super.loadUrl("file:///android_asset/www/file.html"); 10 } 11}
file.html:
1<!DOCTYPE html> 2<html> 3 <head> 4 <title>Property Files</title> 5 6 <script type="text/javascript" charset="utf-8" src="js/phonegap.1.4.1.js"></script> 7 <script type="text/javascript" charset="utf=8" src="js/jquery-1.7.min.js"></script> 8 <script type="text/javascript" charset="utf-8" src="js/property.js"></script> 9 10 <script type="text/javascript" charset="utf-8"> 11 function init(){ 12 document.addEventListener("deviceready", onDeviceReady, false); 13 } 14 function onDeviceReady() { 15 var prop = new PropertyObj(); 16 prop.loadPropertyFile(); 17 navigator.notification.alert("app name:" + prop.name); 18 } 19 20 </script> 21 </head> 22 <body onload="init();"> 23 <h1>Example</h1> 24 <p>Property File</p> 25 </body> 26</html>
property.js :
1function PropertyObj(){ 2 this.name = ""; 3}; 4 5PropertyObj.prototype.getName = function() { 6 return this.name; 7}; 8 9PropertyObj.prototype.loadPropertyFile = function() { 10 var name = ""; 11 $.ajax({ 12 url: 'property/app.properties', 13 async: false, 14 success: function(data){ 15 console.log("load success."); 16 var propArray = data.split("\n"); 17 var length = propArray.length; 18 for(var i=0;i<length;i++){ 19 console.log(propArray[i]); 20 } 21 //for example 22 name = propArray[0]; 23 }, 24 error: function(){ 25 //should use default property. 26 console.log("load failed."); 27 } 28 }); 29 this.name = name; 30};
app.properties
app=NewAPP
PhoneGap支持File类型,可以直接读取Android系统里的文件。在这里,并没有用这种方式。而是用Ajax调用的方式来读取www目录下的配置文件。这样做的好处就是配置文件和我们的程序在一个包里面,不依赖具体手机或者平台的文件目录结构。