Android项目实践系列(三) -细谈PhoneGap (整合篇)

前言

  相信大家对大名鼎鼎的 PhoneGap 略有所闻了吧,至于它的强大我就不详细介绍了,大家可以在网上搜索一下。这里我想着重强调下 PhoneGap 提供了Android, iPhone, Palm, 和 Blackberry 平台的原生包装软件(Wrapper),让行动网页可以被包装成原生软件的样子,而不需要透过浏览器作为入口。

  本文章将会从应用的角度探讨如何使用PhoneGap以及如何使用PhoneGap的第三方插件。

  我将会介绍PhoneGap的第三方插件ChildBrowser。

项目实践

项目准备:

    0. Android开发环境(Eclipse + ADT + AndroidSDK + ...)

    1. 下载 好 PhoneGap 所需要的包(cordova-2.1.0.jar, cordova-2.1.0.js, xml/config.xml)

    2. 下载 好 PhoneGap 的第三方插件 ChildBrowser 所需要的文件(childbrowser.js, ChildBrowser.java, ...)

项目说明:

   该项目中,我首先创建一个Android Project - Android-PhoneGap,将 PhoneGap 整合进去,然后将 ChildBrowser 整合到项目中,最后定制一个 AppShell 插件。

创建Android-PhoneGap项目


  此章节我就不详细介绍了,你可以参考 官方教程

  创建后的结构图如下


  App.java
 1  public  class App  extends DroidGap {
 2 
 3     @Override
 4      public  void onCreate(Bundle savedInstanceState) {
 5          super.onCreate(savedInstanceState);
 6         setContentView(R.layout.app_layout);
 7          super.loadUrl("file:///android_asset/www/test.html");
 8     }
 9 
10 }

  需要强调以下几点:

    1. App 需要继承 DroidGap, super.loadUrl("file:///android_asset/www/test.html");同样可以load HTTP resources

    2. 将 cordova-2.1.0.js 拷贝到 assets/www 文件夹中

    3. 将 cordova-2.1.0.jar 拷贝到 libs 文件夹中

    4. 将xml/config.xml拷贝到 res 文件夹中

整合 PhoneGap 的第三方插件 ChildBrowser 到项目


  1. 在 Android-PhoneGap 项目src下创建包 com.cc.mobile.phonegap.plugins ,将 \ChildBrowser\2.0.0\src\com\phonegap\plugins\childBrowser 文件夹中的 ChildBrowser.java 拷贝到里面

  2. 在 Android-PhoneGap 项目assets下创建 plugins 文件夹, 将 \ChildBrowser\2.0.0\www目录下的 childbrowser.js 文件拷贝到里面,同样将childbrowser目录下的三张图片拷贝下

  3. 在 xml\config.xml 文件中,加如以下信息

< plugin  name ="ChildBrowser"  value ="com.cc.mobile.phonegap.plugins.ChildBrowser" ></ plugin >

  整合后的效果图如下

 

 

  整合后的 res/xml/config.xml文件
ExpandedBlockStart.gif config.xml
 1  <? xml version="1.0" encoding="utf-8" ?>
 2  <!--
 3         Licensed to the Apache Software Foundation (ASF) under one
 4         or more contributor license agreements.  See the NOTICE file
 5         distributed with this work for additional information
 6         regarding copyright ownership.  The ASF licenses this file
 7         to you under the Apache License, Version 2.0 (the
 8         "License"); you may not use this file except in compliance
 9         with the License.  You may obtain a copy of the License at
10 
11           http://www.apache.org/licenses/LICENSE-2.0
12 
13         Unless required by applicable law or agreed to in writing,
14         software distributed under the License is distributed on an
15         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16         KIND, either express or implied.  See the License for the
17         specific language governing permissions and limitations
18         under the License.
19  -->
20  < cordova >
21      <!--
22      access elements control the Android whitelist.
23      Domains are assumed blocked unless set otherwise
24        -->
25 
26      < access  origin ="http://127.0.0.1*" />  <!--  allow local pages  -->
27 
28      <!--  <access origin="https://example.com" /> allow any secure requests to example.com  -->
29      <!--  <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www  -->
30      < access  origin =".*" />
31 
32      < log  level ="DEBUG" />
33      < preference  name ="useBrowserHistory"  value ="false"   />
34      < preference  name ="exit-on-suspend"  value ="false"   />
35  < plugins >
36      < plugin  name ="App"  value ="org.apache.cordova.App" />
37      < plugin  name ="Geolocation"  value ="org.apache.cordova.GeoBroker" />
38      < plugin  name ="Device"  value ="org.apache.cordova.Device" />
39      < plugin  name ="Accelerometer"  value ="org.apache.cordova.AccelListener" />
40      < plugin  name ="Compass"  value ="org.apache.cordova.CompassListener" />
41      < plugin  name ="Media"  value ="org.apache.cordova.AudioHandler" />
42      < plugin  name ="Camera"  value ="org.apache.cordova.CameraLauncher" />
43      < plugin  name ="Contacts"  value ="org.apache.cordova.ContactManager" />
44      < plugin  name ="File"  value ="org.apache.cordova.FileUtils" />
45      < plugin  name ="NetworkStatus"  value ="org.apache.cordova.NetworkManager" />
46      < plugin  name ="Notification"  value ="org.apache.cordova.Notification" />
47      < plugin  name ="Storage"  value ="org.apache.cordova.Storage" />
48      < plugin  name ="Temperature"  value ="org.apache.cordova.TempListener" />
49      < plugin  name ="FileTransfer"  value ="org.apache.cordova.FileTransfer" />
50      < plugin  name ="Capture"  value ="org.apache.cordova.Capture" />
51      < plugin  name ="Battery"  value ="org.apache.cordova.BatteryListener" />
52      < plugin  name ="SplashScreen"  value ="org.apache.cordova.SplashScreen" />
53      < plugin  name ="Echo"  value ="org.apache.cordova.Echo"   />
54     
55      <!--  Start Customized plugins  -->
56      < plugin  name ="ChildBrowser"  value ="com.cc.mobile.phonegap.plugins.ChildBrowser" ></ plugin >
57  </ plugins >
58  </ cordova >

  如此即整合完毕。

后续


  下面章节,我将详细介绍如何使用PhoneGap进行实际开发,以及如何使用ChildBrowser插件以及如何定制自己的第三方插件。

 

文章参考链接

http://docs.phonegap.com/en/2.1.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android

https://github.com/phonegap/phonegap-plugins/tree/master/Android/ChildBrowser

http://www.inside.com.tw/2010/08/15/phonegap-eliminates-the-gap-between-mobile-web-and-native-app

http://www.inside.com.tw/2011/01/29/hello-inside-phonegap
 

作者信息:

QQ: 1321518080

Email: hucaijun520.ok@163.com

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/youngC/archive/2012/10/12/2720950.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值