phonegap開發入門

作了幾回開發配置了,但時間一長就忘了,特記錄一下。html

1、環境變量配置::右擊「個人電腦」-->"高級"-->"環境變量"java

  一、在系統變量裏新建JAVA_HOME變量,變量值爲:C:\Program Files\Java\jdk1.7.0_79(根據本身的安裝路徑填寫)node

  二、 新建classpath 變量,變量值爲:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jarandroid

  三、 在path 變量(已存在不用新建)尾部添加變量值:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意變量值之間用「;」隔開)apache

  四、「開始」-->「運行」-->輸入「javac」-->"Enter",若是能正常打印用法說明配置成功!npm

  五、下載Android Development Tools 已經包括了Android sdk、esclipe,解壓便可使用:http://www.cnblogs.com/kuangliu/p/4607406.htmlwindows

  六、在path 變量(已存在不用新建)尾部添加變量值:app

  D:\phonegap\adt-bundle-windows-x86_64-20140702\sdk\tools(根據本身的存放路徑填寫)eclipse

  D:\phonegap\adt-bundle-windows-x86_64-20140702\sdk\platform-toolside

  D:\phonegap\adt-bundle-windows-x86_64-20140702\eclipse\plugins\org.apache.ant_1.8.3.v201301120609\bin

  七、更新本身的android sdk到最新(否則build不成功)

  八、ANT目錄不能是中文 否則編譯不成功

  九、輸入java javac ant 看是否配置環境成功

注:JAVA_HOME:  jdk 的安裝路徑

  classpath:     java 加載類路徑,只有類在classpath 中java 命令才能識別,在路徑前加了個"."表示當前路徑

  path:      系統在任何路徑下均可以識別java,javac 命令

2、安裝 node node .js

  下載地址:http://nodejs.org/

  下載完成安裝 node

3、安裝phonegap

  npm install -g cordova

4、建立項目

   cordova create hello com.example.hello "HelloWorld"

  cd hello

  cordova platform add android

  cordova build

  cordova run android 運行模擬器

 

5、安裝、刪除插件

cordova plugin add org.apache.cordova.console   //添加
cordova plugin ls    //查看
cordova plugin rm org.apache.cordova.console    //刪除

6、配置全局文件

  http://docs.phonegap.com/zh/edge/config_ref_index.md.html#Config.xml%20%E6%96%87%E4%BB%B6

 

若是用eclipse建立項目的話要修改幾個文件

  一、把cordova-2.9.0.jar文件拷貝到libs文件夾裏

  二、example裏的xml文件夾拷貝到項目目錄下的res文件夾裏

  三、在/assets/www下創建index.html文件,並引入cordova.js文件

  四、對src文件夾下的XXX.java文件做以下修改:

    4.1 注掉import android.app.Activity;加上import org.apache.cordova.*;

    4.2 修改類的繼承   將Activity 修改成 DroidGap

    4.3 onCreate類改爲 public

    4.4 把setContentView()這行替換爲super.loadUrl("file:///android_asset/www/index.html");
    改完以下:

package com.example.weapp;

//import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
//import android.view.MenuItem;
import org.apache.cordova.*;


public class MainActivity extends DroidGap {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
        super.loadUrl("file:///android_asset/www/index.html");
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    /*@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }*/
}

 

  五、修改項目根目錄下的AndroidManifest.xml文件

    改完以下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.weapp"
    android:versionCode="1"
    android:versionName="1.0" >

    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true"
        android:xlargeScreens="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-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:configChanges="orientation|keyboardHidden"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

其中<application>標籤咱們能夠看作是咱們當前的應用,而<activity>表明咱們應用內的一個界面,<intent-filter>標籤裏咱們給當前頁面設置了一個權限

android.intent.action.MAIN表示是最早啓動的的界面;

android.intent.category.LAUNCHER決定應用程序是否顯示在程序列表裏;

android:configChanges="orientation|keyboardHidden

這是爲了保證機器在橫豎屏切換的時候不會從新執行Activity的onCreate方法;

 

參考:http://www.cnblogs.com/shawn-xie/archive/2012/08/15/2638480.html

相關文章
相關標籤/搜索