android + phoneGap 環境搭建

PhoneGap是一個開發跨平臺的html5本地化程序的平臺,經過它能夠把網頁變爲各類平臺上的應用程序javascript

1.下載phoneGap html

如今phoneGap已經捐給了apache, 地址應該是:html5

http://cordova.apache.org/docs/en/4.0.0//guide_cli_index.md.html#The%20Command-Line%20Interfacejava

它是經過node.js來進行下載的。由於須要node.js,官網:https://nodejs.org/node

說明:node.js 和 phoneGap(cordova) 都須要配置一下環境變量。在PATH中添加bin的目錄便可。android

經過cardova命令來建立phonegap項目。web

4.在eclippse中新建工程apache

在eclipse裏新建工程服務器

下一步網絡

建立的android項目版本能夠是更低一些我看了一下它自帶的例子是5

點擊finish

5.加入phoneGap包

1)建立

/libs    #這個用於放cordova-1.5.0.jar

/assets/www  #這個用於放cordova-1.5.0.js (由cordova命令生成出來的項目)

點擊項目右鍵屬性->java build path->libraties-> add jars


把解壓出來的android目錄下的xml包放到/res下



cordova.xml:

<?xml version="1.0" encoding="utf-8"?>
<cordova>
    <access origin="http://127.0.0.1*"/>
    <log level="DEBUG"/>
</cordova>

我猜acess origin是phonegap的內部web服務器地址,log是定義日誌級別

plugins.xml:

<?xml version="1.0" encoding="utf-8"?>
<plugins>
    <plugin name="App" value="org.apache.cordova.App"/>
    <plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/>
    <plugin name="Device" value="org.apache.cordova.Device"/>
    <plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/>
    <plugin name="Compass" value="org.apache.cordova.CompassListener"/>
    <plugin name="Media" value="org.apache.cordova.AudioHandler"/>
    <plugin name="Camera" value="org.apache.cordova.CameraLauncher"/>
    <plugin name="Contacts" value="org.apache.cordova.ContactManager"/>
    <plugin name="File" value="org.apache.cordova.FileUtils"/>
    <plugin name="Network Status" value="org.apache.cordova.NetworkManager"/>
    <plugin name="Notification" value="org.apache.cordova.Notification"/>
    <plugin name="Storage" value="org.apache.cordova.Storage"/>
    <plugin name="Temperature" value="org.apache.cordova.TempListener"/>
    <plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/>
    <plugin name="Capture" value="org.apache.cordova.Capture"/>
    <plugin name="Battery" value="org.apache.cordova.BatteryListener"/>
</plugins>

上面定義的是所加載的插件,加載的插件越多就須要在AndroidManifest.xml裏定義響應的訪問權限,如果不須要網絡能夠把響應的插件去掉

6.開始開發

能夠參考自帶的example

1)首先把activity類進行修改

package com.yifangyou.hellophonegap;

import android.os.Bundle;
import org.apache.cordova.*;
public class HelloPhoneGap extends DroidGap {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        //加載assets/www目錄下的的index.html
        super.loadUrl("file:///android_asset/www/index.html");
    }
}

2)建立index.html

編輯assets/www/index.html

<!DOCTYPE HTML>
<head>
<title>你好 PhoneGap</title>
<script type="text/javascript" charset="utf-8" src="cordova-1.5.0.js"></script>
</head>
<body>
<h1>你好 PhoneGap</h1>
</body>
</html>

3)修改AndroidManifest.xml,增長權限設置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"
      package="com.yifangyou.hellophonegap" android:versionName="1.1" android:versionCode="5">
    <uses-sdk android:minSdkVersion="8" />
    <supports-screens
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:resizeable="true"
        android:anyDensity="true"
        />

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.RECORD_VIDEO"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <application android:icon="@drawable/icon" android:label="@string/app_name"
        android:debuggable="true">
        <activity android:name=".HelloPhoneGap" android:label="@string/app_name" 
                 android:configChanges="orientation|keyboardHidden">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="org.apache.cordova.DroidGap" android:label="@string/app_name" 
                 android:configChanges="orientation|keyboardHidden">
            <intent-filter>
            </intent-filter>
        </activity>
    </application>
</manifest>

7.最後運行

相關文章
相關標籤/搜索