Hybrid開發架構搭建(一)PhoneGap簡介,hybridphonegap

來源:互聯網
上載者:User

Hybrid開發架構搭建(一)PhoneGap簡介,hybridphonegap

本系列部落格將介紹採用PhoneGap、Backbone、Seajs、Ratchet和SPM等js庫或工具搭建一個Web主體型的Hybrid模式的行動裝置 App開發架構。

 

Phonegap是一款開源的開發架構,旨在讓開發人員使用HTML、Javascript、CSS等Web APIs開發跨平台的行動裝置 App程式。PhoneGap原本由Nitobi公司開發,後來Adobe收購了這件公司,Adobe將PhoneGap的核心代碼捐獻給了Apache,於是有了Apache Cordova。其實這兩者的核心代碼是沒區別的,PhoneGap是原來的名字,Adobe擁有PhoneGap的商標,所以捐出去的代碼就改了名字為Apache Cordova,目前為止基本上可以認為這二者是同一個東西,除了包名不同,事實上從PhoneGap下載到的phonegap-2.9.1.zip解壓後發現裡面的名字也是cordova。

                                

分別是PhoneGap和Cordova官網上介紹二者的圖片,圖片對比也可以看出Cordova類似於PhoneGap的大腦(核心組件)。PhoneGap為企業開發人員提供了雲端打包服務和其它功能。

下面在Android平台下採用PhoneGap實現一個簡單的Demo。開發環境Windows7+Eclipse 4.2.2 + Android SDK 17

在http://phonegap.com/ 下載一個最新的PhoneGap軟體包,解壓後在lib檔案夾下得到如下檔案夾,可以看到PhoneGap目前支援的平台有android、ios、windows-phone等,現在我們只做Android平台的示範,從android檔案夾中找到src檔案夾和assets檔案夾。

    

建立一個Android工程HybridDemo,將這兩個檔案夾下的檔案分別拷貝到建立工程對應的目錄下,如所示(新版的PhoneGap依賴了okhttp這個庫):

                             

修改MainActivity.java檔案:

import org.apache.cordova.DroidGap;import android.os.Bundle;import android.annotation.SuppressLint;import android.app.Activity;import android.view.Menu;public class MainActivity extends  DroidGap {  @SuppressLint("SetJavaScriptEnabled")@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);    super.init();super.appView.getSettings().setJavaScriptEnabled(true);  super.loadUrl("file:///android_asset/www/index.html",2000); } }

  修改AndroidManifest.xml檔案,為PhoneGap各個功能組件的調用增加許可權。

   <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" />

還有一個config.xml設定檔,檔案路徑為res/xml/config.xml,我們只做示範,沒有涉及到外掛程式的開發,不需要修改這個設定檔,從phonegap檔案夾下拷貝過來就是了,這個設定檔被PhoneGap架構java實現部分所引用,沒有它會報錯。

運行程式結果:

 

 

 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.