在做(zuò)APP的(de)時(sh≈★×í)候 ,假如(rú)使用(yòng)phonegap 開(k✔₽αāi)發,那(nà)麽一(yī)定會(huìδ∏÷σ)用(yòng)到(dào)插件(jiàn)的(de©Ωπ),因為(wèi)phonegap不(bù)知(zhī)→σδ道(dào)你(nǐ)會(huì)使用(yòng)哪些(xiē↑∞₹)插件(jiàn)。來(lái)适應高(gāo)速發展的(deΩ♠" )互聯網。
其實還(hái)是(shì)比較簡單的(de),首先新建≥<一(yī)個(gè)類 這(zhè)個(gε₹φδè)類專門(mén)是(shì)用(yòng)來(lái)寫↓∏β÷插件(jiàn)的(de)。本文(wén)插件(jiàn)式針對(duì¶✔'↕)phonegap 2.9的(de)。
比如(rú)類名為(wèi)SimplePlugin 繼承 CordovaPlugin
這(zhè)個(gè)類和(hé) 主類§★↑ 在同一(yī)個(gè)包裡(lǐ)面。
發上(shàng)代碼來(lái)瞅瞅:
public class SimplePlugin ex♠€tends CordovaPlugin {
private String mClientId;
private ShareContent mShareCon×★π™tent;
@Override
public boolean execut$&™★e(String action, JSONArray δ™γλargs, final CallbackContext cal ♠lbackContext) throws J SONException {
if (act"σion.equals("echo")) {
λ ↔ String≥βσ✘ message = args.getString(0);
//String message = "÷π∏;HI,this is java hello!";
↓ ♣↕ this.echo(message, callba↕₽"ckContext);
&nb¥sp; return true;
}
else if(ac¥↓tion.equals("sh₽>→owProcess")){
☆♣∞ //���������DEMO
final String title=args.getσ≤↕String(0);
&nbs↓↑p; final String content=arΩ×gs.getString(1);
cordova.getActivity().runOnUiTδ☆¶hread(new Runnable() {
&nb¥÷sp; pub®↑✔lic void run() {
&nbsγ§₽₹p; ProgressDialog progressDialφε©±og = ProgressDialog.show(cor§±dova.getActivity(), t±↓itle, content);
&nb★×€sp; progressDialog.setCance∞&"lable(true);
&nbβ¥÷§sp; <$< callbackContext.succe★♠ss(); // Thread-safe.→×
&nbγ® ♣sp; &n εbsp; }
&$±'→nbsp; });
&nbα☆sp; return true;
}
private v∞≥oid echo(String message, Ca>↑¶llbackContext callbackContext) ≤©{
&n<λ≠bsp; if (message != ≤♦₽γnull && message. σ≤¶length() > 0) {
&nbs♥βε₹p; callbackContext.su §ccess(message);
} else {
&<©♣✘nbsp; callba€£ckContext.error("Ex∑™↓₹pected one non-empty €©☆string argument.");
} &
}
}
在xml中增加插件(jiàn) &nbsσ↕&$p;res/xml/config.xml 中
<plugin☆•✔s>
&nbs ¶↓p;<plugin name="SimplePlug<σin" value="com.longguang.l"β$↑ongguang.SimplePlugin"/> &nbs↑÷☆♠p;
</plugins&∑πgt;
然後就(jiù)是(shì)js代用(yòng™₽)的(de)了(le)。
從(cóng)插件(jiàn)類中可(kě δ♣)以看(kàn)出 else if(action§€¥.equals("showShare")){ ♠♠有(yǒu)很(hěn)多(duō) elseif∑♥€ 每一(yī)個(gè)if &nb♠✔α sp;都(dōu)是(shì)一(yī)個(gèφ"Ω)插件(jiàn) ₩σ&¶
在html中js代碼可(kě)以調用(yòn♠©<€g)這(zhè)些(xiē)插件(jiàn) &n∑₹'bsp;
function xx(){
π™ cordova.exec(sucα≈cessFunction2, failFunction, &ε©≠quot;SimplePlugin","←®tishi",[]);
}
第三個(gè)參數(shù) 是(shì) Si> ₹mplePlugin 這(zhè)個(g§Ωè)即是(shì)類名 tis←& ←hi 就(jiù)是(shì) if中的(de)。→✘ 表示一(yī)個(gè)插件(jiàn) [¥ π]中是(shì)參數(shù)。
在 類插件(jiàn)中這(zhè")樣表示
final String title=args.getString(0);
final String content=args.getStri≤♠•∑ng(1);
第一(yī)個(gè) 參數(shù) 第二個(gè)參數(₽£↕←shù)
以上(shàng)就(jiù)完成了(le) ☆Android 客戶端 插件≈>(jiàn)的(de)開(kāi)發。