如何用PhoneGap打包基于Android的WebApp
如何用PhoneGap打包基于Android的WebApp是本文要介紹的內容,主要是來了解并學習PhoneGap的內容,具體關于PhoneGap內容的實現來看本文詳解。
在Android上,我們可以基于android.webkit.WebView作為應用的main view來產生一個應用程序,并讓此WebView在應用啟動時加載指定的網頁,這樣就構建了一個基于Android的WebApp。
對于Android, Sencha的phonegap也是基于此方法對網頁程序進行打包的,下載phonegap后,其主要包括二個文件:
1、phonegap.0.9.4.jar
此jar文件中包含了類DroidGap,其對Activity及WebView進行了適當的封裝,可以讓用戶更方便地進行打包。
更主要的功能是能實現的多個Webkit的plugin, 通過這些plugin可以在javascript中直接調用android的一些系統功能,比如得到設備的信息如屏幕大小,系統版本號等,還有打電話,發送短信,寫本地文件等一系列功能。
2、phonegap.0.9.4.js
此js文件作了更高層次的封裝,以便于在javascript中更方便地調用所增加的plugin的功能。比如在js中直接調用:
navigator.notification.vibrate(0)可以直接讓手機進行振動
而navigator.notification.beep(2)可以讓手機Beep二聲
以下嘗試一個最簡單的例子(也可以參見phonegap中自帶的一個例子):
(1)java源代碼文件: Sample.java
- package com.phonegap.Sample;
- import android.app.Activity;
- import android.os.Bundle;
- import com.phonegap.*;
- public class Sample extends DroidGap
- {
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- super.loadUrl("file:///android_asset/www/index.html");
- }
- }
(2)網頁代碼: index.html
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <script type="text/javascript" charset="utf-8" src="phonegap.0.9.4.js"></script>
- <title>Test</title>
- </head>
- <body>
- <a href="javascript:navigator.notification.alert('hello');">click me</a>
- </body>
- </html>
把此文件放置在工程的assets/www/目錄下,如果網頁代碼中包含了其它的目錄,則一并放置在這一目錄下。
(3)在工程中加入庫phonegap.0.9.4.jar的引用
編譯運行并點擊頁面中click me鏈接時,可以見到以下畫面:
注意:
(1)phonegap.0.9.4.jar中提供了很多的plugin, 上面的示例程序只調用了navigator.notification.alert, 如需要調用其它功能,則需要在android工程的Manifest.xml中加入這個功能permission聲明:
- <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.READ_PHONE_STATE" />
- <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.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" />
(2)在此可下載完整的工程文件,此例子基于phonegap自帶的一個例子,但只保留了最少的部分。
小結:如何用PhoneGap打包基于Android的WebApp的內容介紹完了,希望通過PhoneGap內容的學習能對你有所幫助!