由于项目需要,需要了解PhoneGap架构以其在各个平台的环境配置,阅读了官网部分文档,总结如下。
【官网地址】
http://phonegap.com/
【环境配置】
参考: http://phonegap.com/install/
1. 安装NodeJs。 打开NodeJs的官网:http://nodejs.org/ 点击“install”,即可完成安装。
NodeJS安装完成后,会自带把npm安装好,npm也在第二步中需要用到。
2. 安装phoneGap
在控制台运行命令:
sudo npm install -g phonegap
输出结果如下:
/usr/local/bin/phonegap -> /usr/local/lib/node_modules/phonegap/bin/phonegap.js
phonegap@3.1.0-0.15.0 /usr/local/lib/node_modules/phonegap
├── colors@0.6.0-1
├── pluralize@0.0.4
├── semver@1.1.0
├── qrcode-terminal@0.9.4
├── shelljs@0.1.4
├── optimist@0.6.0 (wordwrap@0.0.2, minimist@0.0.5)
├── node-static@0.7.0 (colors@0.6.2, mime@1.2.11)
├── phonegap-build@0.8.4 (qrcode-terminal@0.8.0, optimist@0.3.7, shelljs@0.0.9, phonegap-build-api@0.3.3)
├── prompt@0.2.11 (revalidator@0.1.5, pkginfo@0.3.0, read@1.0.5, winston@0.6.2, utile@0.2.0)
└── cordova@3.1.0-0.1.0 (ncallbacks@1.0.0, colors@0.6.2, open@0.0.3, mime@1.2.11, shelljs@0.1.2, follow-redirects@0.0.3, tar@0.1.18, prompt@0.2.7, glob@3.2.6, elementtree@0.1.5, xcode@0.5.1, npm@1.3.13, express@3.0.0, request@2.22.0, plist@0.4.3, ripple-emulator@0.9.18, plugman@0.13.0)
3. 使用phoneGap
输入命令:
$ phonegap create my-app
$ cd my-app
$ phonegap run android
其中,可以关联create命令: (在bashrc中关联bin里面的create命令)
# PhoneGap
alias pgap='/Library/PhoneGap/bin/create'
‘=’右边为具体的phoneGap路径。
创建工程的格式为:
pgap <project_folder_path> <package_name> <project_name>
【PhoneGap在IOS平台的应用】
官网链接为: http://docs.phonegap.com/en/edge/guide_platforms_ios_index.md.html#iOS%20Platform%20Guide
$ cordova create hello com.example.hello "HelloWorld"
$ cd hello
$ cordova platform add ios
$ cordova prepare # or "cordova build"
[ error1] cordova: command not found
[solution1]
需要安装:
sudo npm install -g cordova
cordova 和phonegap虽然是来自同一家,但还是不同的,他们的关系就像webkit和google chrome。。要运行这个cordova当然得安装。
[solution2]
执行命令及结果:
Scotts-iMac:helloworld mac$ phonegap create hello com.example.hello "HelloWorld"
[phonegap] missing library phonegap/www/3.1.0
[phonegap] downloading https://github.com/phonegap/phonegap-app-hello-world/archive/3.1.0.tar.gz...
[phonegap] created project at /Users/mac/Documents/PhoneGap/helloworld/hello
[ error2] 运行命令:phonegap run ios 失败
[solution2]
phonegap run ios
[phonegap] detecting iOS SDK environment...
[phonegap] using the local environment
[phonegap] adding the iOS platform...
[phonegap] missing library cordova/ios/3.1.0
[phonegap] downloading https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;a=snapshot;h=3.1.0;sf=tgz...
[phonegap] compiling iOS...
[phonegap] successfully compiled iOS app
[phonegap] trying to install app onto device
[phonegap] no device was found
[phonegap] trying to install app onto emulator
[warning] missing ios-sim
[warning] install ios-sim from http://github.com/phonegap/ios-sim
[error] An error occurred while emulating/deploying the ios project.=== CLEAN TARGET CordovaLib OF PROJECT CordovaLib WITH CONFIGURATION Debug ===
但这个命令会再对应路径下生成响应的IOS 工程文件,打开“HelloWorld.xcodeproj”, 可以正常编译,运行。
错误的原因是签名导致,没有正确的profile文件。
【PhoneGap系统架构】
网上找的架构图如下:
【IOS中使用方法】
#import <Cordova/CDVViewController.h>
CDVViewController* viewController = [CDVViewController new];
viewController.wwwFolderName = @"myfolder";
viewController.startPage = @"mystartpage.html";
viewController.useSplashScreen = YES;
viewController.view.frame = CGRectMake(0, 0, 320, 480);
[myView addSubview:viewController.view];
【源码地址】
https://svn.apache.org/repos/asf/incubator/callback/phonegap-android/trunk/