上周用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