當前位置:首頁 » 操作系統 » phonegap源碼下載

phonegap源碼下載

發布時間: 2022-03-16 05:29:22

『壹』 如何 在phonegap 框架 使用mqtt 消息推送推送 源碼

在開發Android和iPhone應用程序時,我們往往需要從伺服器不定的向手機客戶端即時推送各種通知消息,iPhone上已經有了比較簡單的和完美的推送通知解決方案,可是Android平台上實現起來卻相對比較麻煩,最近利用幾天的時間對Android的推送通知服務進行初步的研究。
在Android手機平台上,Google提供了C2DM(Cloudto Device Messaging)服務,起初我就是准備採用這個服務來實現自己手機上的推送功能。Android Cloud to Device Messaging
(C2DM)是一個用來幫助開發者從伺服器向Android應用程序發送數據的服務。該服務提供了一個簡單的、輕量級的機制,允許伺服器可以通知移動應用程序直接與伺服器進行通信,以便於從伺服器獲取應用程序更新和用戶數據。C2DM服務負責處理諸如消息排隊等事務並向運行於目標設備上的應用程序分發這些消息。

『貳』 phonegap和android sdk之間怎麼連接

java 端介紹
Java 端作為後台調用 Android 本地 SDK 的介面,主要實現了如下的功能:
建立通訊機制,提供介面給瀏覽器端,方便 JavaScript 進行調用。
數據隊列的維護,以保證瀏覽器端的調用後產生的數據可以回送。
插件體系的建立,提供整個框架的可擴展性。
而這三部分的功能對應到代碼中則是如下的幾個重要的 Java 類:
DroidGap、CallbackServer
CallbackServer
Plugin、PluginManager
因此我們需要依次來了解這幾個重要的 Java 類的具體實現,這樣才可以對 PhoneGap 在 Android 上的體系有一個很好的了解。
DroidGap 的實現
當 我們完成一個基本的 PhoneGap 的示例後,我們就會發現,在使用 PhoneGap 進行開發的手機應用中,第一步就是將繼承關系 extends Activity 修改為 extends DroidGap。因此,DroidGap 是整個應用開始的地點,首先需要了解 DroidGap 的內容。
在源碼中可以看到 DroidGap 繼承自 PhonegapActivity,而 PhonegapActivity 是一個抽象類,繼承自 Activity,但是具體的實現都是集中在 DroidGap 類中。
因 此,我們繼續回到 DroidGap 類中,當我們知道 DroidGap 類也是一個 Acitvity 後,就會明白,DroidGap 在 onCreate 方法中實現了整個類最初的一些操作,代碼的實現則集中在 onCreate() 和 init() 這兩個方法中,具體的流程如下:
設置 WebView
設 置 WebView 的代碼都集中在 init() 方法中,其中一個值得注意的工作是設置 WebChromClient。代碼中提供了一個繼承自 WebChromClient 的類,重寫了其中的 onJsAlert,onJsConfirm,onJsPrompt 等方法。而在 onJsPrompt() 方法中,實現了 PhoneGap 中 Java 端和瀏覽器端通訊的關鍵一步。因此,值得我們專門的關注其代碼,具體的功能實現代碼如下,我們已經過濾了一些錯誤處理、安全驗證等等可能會妨礙我們對重要 的功能實現理解的代碼:
代碼清單 1. WebView 代碼
if (reqOk && defaultValue != null && defaultValue.length() > 3
&& defaultValue.substring(0, 4).equals("gap:")) {
JSONArray array;
try {
array = new JSONArray(defaultValue.substring(4));
String service = array.getString(0);
String action = array.getString(1);
String callbackId = array.getString(2);
boolean async = array.getBoolean(3);
String r = pluginManager.exec(service, action, callbackId, message, async);
result.confirm(r);
} catch (JSONException e) {
e.printStackTrace();
}
}
// Polling for JavaScript messages
else if ......
在此,我們就可以明白,實現 JavaScript 與 Java 端通訊的原理是 JavaScript 利用 prompt 來傳遞調用信息的數據,在 onJsPrompt 中,重寫的方法截獲了這些數據,在完成了對數據格式等等分析後,按照要求進行具體的調用。而具體的調用利用是的 PluginManager 類,這將在隨後說明。
綁定 js
在 完成 WebView 的設置後,再將 PhoneGap 和 js 綁定,實現 js 與 PhoneGap 的通訊。在這一步中主要的內容就是實例化了 CallbackServer 和 PluginManager 兩個類。因此,更多的內容會在隨後對這兩個類的介紹中再說明。
載入 URL
LoadUrl 方法也是實現一個 PhoneGap 示例後很熟悉的方法,在 loadUrl 中,完成基本的字元串處理後,主要利用 runOnUiThread 開始處理,其中第一步檢測是否需要提供載入的顯示,之後使用 WebView 的 loadUrl 載入內容,並且設置超時時間。
至此,Java 端的准備工作也就完成,實現了 UI 的載入。可以看到,在 DroidGap 類中最重要的一個部分就是截獲 JavaScript 的 prompt 數據。這是實現瀏覽器端和 Java 端通訊的基礎。
Plugin 的實現
Plugin 是一個抽象類,實現了 IPlugin 介面,PhoneGap 中利用 Android SDK 實現邏輯代碼的途徑就是通過繼承 Plugin 來實現。應此 Plugin 本身非常簡單,最主要的部分是提供一個 execute 方法,如下:
public abstract PluginResult execute(String action, JSONArray args, String callbackId);
Plugin 的實現中的重要邏輯在其中來實現,它返回的是一個 PluginResult 對象,這個對象主要負責傳遞數據信息,包括的成員主要如下:
private final int status;
用於返回狀態,status 與一個 enum 類型相關,用於標注插件的執行結果如何。
private final String message;
用於返回數據信息。
PluginManager 的實現
PluginManager 事實上是 DroidGap 類和具體的繼承自 Plugin 的插件的聯系紐帶,由它來尋找和載入插件,並且調用。
首 先,PluginManager 在構造函數中,調用了 loadPlugins 方法,該方法負責解析 xml 配置文件,對應每個 plugin,調用一次 addService 用於注冊插件,具體的注冊地點,是通過維護一個 HashMap<String, String> 來實現,分別保存 serviceType, className。在成員中,有另外一個 HashMap<String, IPlugin> 用於實現 className 和 IPlugin 類的綁定。這樣就實現了 serviceType 和 IPlugin 的對應。
在 PluginManager 中,執行插件的方法 exec 是主要功能,我們將會詳細說明一下這個方法的過程:
利用查詢之前提到的 HashMap<String, String> 將 service 和 className 對應起來,這樣我們就獲得了提供功能的插件類的位置。
通過 getClassByName 來獲得插件類。
完成類型檢測,確定對應的類是一個插件類。
執行 addPlugin 方法,其中則將第 2 步中獲得插件類的 className 和具體的 Plugin 介面的實現綁定,具體的實現就是上文中提到的 HashMap<Strig,IPlugin>。
判斷 Plugin 是否需要非同步執行,再根據情況,選擇直接執行或者是建立新的線程來執行。
完成執行後,得到的數據會根據情況交給 CallbackServer 來處理,PluginManager 會調用 DroidGap 中的 sendJavaScript 來將數據交給 CallbackServer,事實上,DroidGap 中的 sendJavaScript 不過是對 CallbackServer 中的 sendJavaScript 包裝,實際調用的是 CallbackServer 中的 sendJavaScript 方法,這涉及到了 CallbackServer 類,隨後就會說明。
執行結果的轉換則是利用 PluginResult 中的一些 to***String 方法。這些方法返回了一個 String 類型,其中包括了具體的 JSON 對象和 callbackId,具體的形式則是一個 js 代碼,用於前端的調用。
CallbackServer 的實現
CallbackServer 實現了 Runnable 介面,具體的功能就是維護一個數據的隊列,並且建立一個伺服器,用於 XHR 的數據傳遞,對數據的隊列的維護利用的是 LinkedList<String>。
由於實現的是 Runnable 介面,在 CallbackServer 中,最主要的方法就是 run() 方法,run() 方法的具體內容簡介如下:
首先利用 ServerSocket 監聽埠,具體埠則自由分配。
在 accept 後則是對 HTTP 協議的解析,和對應的返回 status code。
在驗證正確後,利用 getJavascript 方法得到維護的 LinkedList<String>() 中的保存的 js 代碼,如果為空則返回 null。
這些具體的 string 類型的 js 代碼則利用 socket 作為 response 返回給前端。
之後就是對隊列維護的方法,這時理解之前的 sendJavaScript 則很簡單,該方法與 getJavaScript 相反,一個是從 LinkedList 中取出 js 代碼,一個則是加入。
綜 上,CallbackServer 實現的是兩個功能,一個是 XHR 的 SocketServer,一個是對隊列的維護。而完成 CallbackServer 類的說明後,Java 端的主要功能也都說明完畢。隨後會說明瀏覽器端的說明,在完成瀏覽器端說明後,我們就會明白整個 PhoneGap 框架運行的原理。

『叄』 像類似Phonegap這樣的app開發工具還有哪些

PhoneGap是一個用基於Web語言去創建移動跨平台移動應用程序的快速開發平台。像這類的工具還有很多,尤其是國內有很多,我給你舉幾個例子。

1.APICloud

RhoMobile提供了Rhodes,這是一種基於Ruby的開源框架。這個工具讓開發人員可以開發能夠跨一大批操作系統和智能手機運行的原生應用程序。操作系統包括安卓、Windows Mobile、iPhone,幾乎涵蓋所有主流操作系統。

使用RhoMobile提供的框架,你只需要編寫一次代碼。該代碼可以用來為大多數主流的智能手機開發應用程序。原生應用程序很適合與現有的硬體協同運行,所以你可以輕松、快速、准確地完成開發任務。

RhoMobile還為開發人員提供了RhoHub和RhoSync,前者是一種託管型的開發環境,後者可以作為獨立式伺服器軟體來部署,以便確保用戶手持設備上的所有應用程序數據是最新的。

『肆』 如何對phonegap應用加密

因為存放的是assets文件,不參與編譯,只是單純打在包里
目前加密方法只能是把js做壓縮

高級一點就得結合Native做了

『伍』 如何使用PhoneGap打包Web App

因為我只弄了Andriod的環境,所以在此只以Andriod為例。
使用PhoneGap搭建Android開發的項目整體步驟如下:
安裝java環境。
安裝ant構建工具。
安裝android的開發環境並配置環境變數。
安裝Node.js環境並配置環境變數。
安裝git
使用npm安裝PhoneGap全局環境。
使用PhoneGap命令創建PhoneGap項目。
將PhoneGap編譯為android項目。
將上述項目導入ADT進行後續開發。
安裝.apk文件
其實官網給出的安裝過程忽略了很多步驟(因為這里是Andriod環境,所以才會比官網的例子多出不少步驟),像我這種前端開發人員,電腦里可是連java都沒裝的,下面就詳細講解這些步驟,並最終生成apk文件。
安裝Java環境
這點不用我講,網上一搜一大堆,而且很多程序員電腦裡面都是有java環境的,需要強調的是安裝java的環境要和後面下載andriod開發環境一致,不然會報錯,要保證都是32位或64位,筆者就裝了個64位jdk然後,安卓環境是32位的,運行不成功。

『陸』 如何利用PhoneGap製作地圖APP

在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.javapackage 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 > <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>Testtitle> head> <body> <a href="javascript:navigator.notification.alert('hello');">click mea> 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內容的學習能對你有所幫助!

『柒』 如何用phonegap打包基於ios的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

packagecom.phonegap.Sample; importandroid.app.Activity; importandroid.os.Bundle; importcom.phonegap.*; { @Override publicvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/index.html"); } }

(2)網頁代碼: index.html

<!DOCTYPEhtml><html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"> <scripttype="text/javascript"charset="utf-8"src="phonegap.0.9.4.js"></script><title>Test</title></head><body><ahref="javascript:navigator.notification.alert('hello');">clickme</a></body></html>

把此文件放置在工程的assets/www/目錄下,如果網頁代碼中包含了其它的目錄,則一並放置在這一目錄下。

(3)在工程中加入庫phonegap.0.9.4.jar的引用

編譯運行並點擊頁面中click me鏈接時,可以見到以下畫面:

『捌』 如何用最新的phonegap創建一個ios應用

對於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.javapackagecom.phonegap.Sample;importandroid.app.Activity;importandroid.os.Bundle;importcom.phonegap.*;{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);super.loadUrl("file:///android_asset/www/index.html");}}(2)網頁代碼:index.htmlTestclickme把此文件放置在工程的assets/www/目錄下,如果網頁代碼中包含了其它的目錄,則一並放置在這一目錄下。(3)在工程中加入庫phonegap.0.9.4.jar的引用編譯運行並點擊頁面中clickme鏈接時,可以見到以下畫面:

『玖』 phonegap3.0在命令行下運行phonegap run android後,如何選擇本地設備

phonegap環境配置比較復雜,建議你下載phonegap3.0的zip包後解壓縮,裡面有android的事例源代碼,用ADT打開然後在示例代碼裡面修改就可以了,手機連接的話要確認手機與ADT連接的埠沒有被佔用,建議用豌豆莢臉上手機後run az android application,然後就可以選擇在你的手機上運行啦

『拾』 phonegap 能將網站打包為APP嗎

對於Android, Sencha的phonegap也是基於此方法對網頁程序進行打包的,下載phonegap後,其主要包括二個文件: 1、phonegap.0.9.4.jar 此jar文件中包含了類DroidGap,其對Activity及WebView進行了適當的封裝,可以讓用戶更方便地進行打包。 更主要...

熱點內容
常用的外文資料庫 發布:2024-11-15 21:37:22 瀏覽:9
vb軟體加密 發布:2024-11-15 21:17:23 瀏覽:596
本地ip可以搭伺服器嗎 發布:2024-11-15 21:04:27 瀏覽:163
阿里巴巴python 發布:2024-11-15 20:56:25 瀏覽:783
博圖腳本編輯 發布:2024-11-15 20:41:06 瀏覽:313
帶密碼的箱子鑰匙在哪裡 發布:2024-11-15 20:40:12 瀏覽:237
兩個次梁相交怎麼配置 發布:2024-11-15 20:27:35 瀏覽:374
android關機實現 發布:2024-11-15 20:26:42 瀏覽:57
木糠壓縮原理 發布:2024-11-15 20:22:53 瀏覽:655
編譯原理難以理解的問題 發布:2024-11-15 20:11:25 瀏覽:131