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

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