PhoneGap插件
PhoneGap插件概述
PhoneGap有兩部分組成
1.PhoneGap javascript API,即 對在瀏覽器(支持各種瀏覽器)上運行的javascript公開的一些原始功能的API
2.PhoneGap javascript API中,針對不同平臺的本地代碼
這些對我們做成通用是非常有利的
1.通過PhoneGap javascript API訪問物理位置
2.通過PhoneGap javascript API訪問聯系人
3.撥打電話
4.等等
或多或少,我們已經對javascript開放了大部分手機功能
PhoneGap插件局限
(Heavy Weight Lifting、后臺處理、復雜的業務邏輯)
盡管,javascript已經比過去快了100x,但是仍不能完成本地代碼能完成的Heavy Weight Lifting。另外,如果我們要去做一些后臺處理(例如,Android的后臺服務),至少目前瀏覽器是無法無法實現的。同樣,如果我們要執行一個非常復雜的業務功能,更喜歡用母語。
比如說,如果你想用PhoneGap去實現一個DropBox的客戶端應用,DropBox客戶端Heavy Weight Lifting將會在后臺不停地監聽更改的文件并且保持讓其同步。而這樣的操作PhoneGap API是無法實現的。
對于這些Heavy Weight Lifting,最好的方法是委托本機代碼實現。
PhoneGap插件解決方案
(擴展PhoneGap框架)
很自然就會想到,制作一個解決方法去克服這些問題,PhoneGap已經公開了手機常用功能的Javascript代碼
用以下提供的方式可以實現
1.一個自定義的本地組件
2.一個自定義的JavaScript API
注意:為你想支持的平臺建立組件,所有這些組件需要用原生組件實現自定義的JavaScript API。
PhoneGap插件整體結構

為不同的平臺寫PhoneGap插件,你必須要實現這兩個組件
1.JavaScript組件,將會在自定義組件中顯示
2.does the heavy lifting的本機組件
針對不同的平臺
在給你一個驚喜之間,先讓我們說明一件事情
假設你正在為iOS和Android兩個平臺,開發PhoneGap插件
有人會認為需要生成以下文件
1.iOS和Android都可以使用的JavaScript文件
2.Android需要的java文件
3.iOS需要的一個*.h文件和一個*.m文件
然而,實際你只需要生成以下文件
1.Android使用的JavaScript文件和java文件
2.iOS需要的一個*.h文件和一個*.m文件,不同iOS的javascript文件
對于自定義的開發者來說,兩個javascript文件都應該有相同的接口,但是每個接口的實現會有所有不同。