zoukankan      html  css  js  c++  java
  • phonegap开发入门

    做了几次开发配置了,但时间一长就忘了,特记录一下。

    一、环境变量配置::右击“我的电脑”-->"高级"-->"环境变量"

      1、在系统变量里新建JAVA_HOME变量,变量值为:C:Program FilesJavajdk1.7.0_79(根据自己的安装路径填写)

      2、 新建classpath 变量,变量值为:.;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar

      3、 在path 变量(已存在不用新建)尾部添加变量值:;%JAVA_HOME%in;%JAVA_HOME%jrein;(注意变量值之间用“;”隔开)

      4、“开始”-->“运行”-->输入“javac”-->"Enter",如果能正常打印用法说明配置成功!

      5、下载Android Development Tools 已经包括了Android sdk、esclipe,解压即可使用:http://www.cnblogs.com/kuangliu/p/4607406.html

      6、在path 变量(已存在不用新建)尾部添加变量值:

      D:phonegapadt-bundle-windows-x86_64-20140702sdk ools(根据自己的存放路径填写)

      D:phonegapadt-bundle-windows-x86_64-20140702sdkplatform-tools

      D:phonegapadt-bundle-windows-x86_64-20140702eclipsepluginsorg.apache.ant_1.8.3.v201301120609in

      7、更新自己的android sdk到最新(不然build不成功)

      8、ANT目录不能是中文 不然编译不成功

      9、输入java javac ant 看是否配置环境成功

    注:JAVA_HOME:  jdk 的安装路径

      classpath:     java 加载类路径,只有类在classpath 中java 命令才能识别,在路径前加了个"."表示当前路径

      path:      系统在任何路径下都可以识别java,javac 命令

    二、安装 node node .js

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

      下载完成安装 node

    三、安装phonegap

      npm install -g cordova

    四、创建项目

       cordova create hello com.example.hello "HelloWorld"
    
      cd hello
    
      cordova platform add android
    
      cordova build
    
      cordova run android 运行模拟器

    五、安装、删除插件

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

    六、配置全局文件

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

    如果用eclipse创建项目的话要修改几个文件

      1、把cordova-2.9.0.jar文件拷贝到libs文件夹里

      2、example里的xml文件夹拷贝到项目目录下的res文件夹里

      3、在/assets/www下建立index.html文件,并引入cordova.js文件

      4、对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);
        }*/
    }

      5、修改项目根目录下的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


    作者:狂流
    出处:http://www.cnblogs.com/kuangliu/
    欢迎转载,分享快乐! 如果觉得这篇文章对你有用,请抖抖小手,推荐一下!

  • 相关阅读:
    先做人,再做事
    当ligerui的grid出现固定列与非固定列不在同一水平线上时,改怎么处理
    权限设计的idea
    ligerUI问题
    在程序出现问题,当找不到错误时,第一时间用try ,catch包括起来
    当页面是本地页面时,通过ajax访问tomcat里的action,传递的参数在action里并不能识别
    好句子
    js Uncaught TypeError: undefined is not a function
    Photoshop学习笔记(一)
    microsoft project 出现不能保存为xls文件时可以按照如下方法解决
  • 原文地址:https://www.cnblogs.com/kuangliu/p/4478515.html
Copyright © 2011-2022 走看看