PhoneGap學(xué)習(xí)筆記之原理執(zhí)行實(shí)例
PhoneGap學(xué)習(xí)筆記之原理執(zhí)行實(shí)例是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)PhoneGap框架應(yīng)用中原理的具體案例運(yùn)行過程,具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。
PhoneGap框架
- https://github.com/phonegap/phonegap-android
Phonegap介紹參考:
Phonegap:快速開發(fā)跨平臺(tái)HTML5應(yīng)用的膠水層
- http://mobile.51cto.com/iphone-273446.html
在開發(fā)移動(dòng)應(yīng)用的過程當(dāng)中,如果你的應(yīng)用只定位在一種平臺(tái)上,這可不是一個(gè)好主意,但是為許多不同的平臺(tái)Building應(yīng)用又是一件非常麻煩和非常不爽的事情,因?yàn)槟銜?huì)發(fā)現(xiàn)每一種手機(jī)平臺(tái)都有自己的SDK,它們需要使用不同語言來進(jìn)行開發(fā),你可能不得不需要5、6個(gè)代碼倉庫來管理不同設(shè)備上的代碼,而且需要不同設(shè)備的開發(fā)人員來開發(fā)維護(hù)這些倉庫,你還不得不裝上各個(gè)設(shè)備的sdk,設(shè)置好路徑和各種配置信息,來編譯不同設(shè)備上的應(yīng)用包。
那么移動(dòng)網(wǎng)站模式是不是一個(gè)可以接受的替代方案呢?幸運(yùn)的是移動(dòng)應(yīng)用和移動(dòng)網(wǎng)站并不是對(duì)立的兩端,通過Phonegap我們可以采用html5的網(wǎng)站形式來開發(fā)移動(dòng)應(yīng)用。也許開源Phonegap 會(huì)成為 WebApp 上設(shè)備端開發(fā)的事實(shí)上標(biāo)準(zhǔn),ShowMuch本期就為你推薦移動(dòng)開發(fā)利器:PhoneGap。
我們先來看看PhoneGap的特性:
支持6種移動(dòng)設(shè)備平臺(tái):iOS, Android, BlackBerry, WebOS, Symbian WRT, Windows Mobile(內(nèi)部測試),以及桌面環(huán)境(內(nèi)部測試)
HTML5 + CSS3 + JavaScript 利用標(biāo)準(zhǔn)的Web技術(shù)開發(fā)應(yīng)用
- Phonegap Build: write once, compile on cloud, run anywhere.
提供在線Builder平臺(tái):只寫一次,云端編譯,運(yùn)行在任何地方
目前已經(jīng)有上千基于Phonegap的應(yīng)用在AppStore上
Phonegap 目前標(biāo)注的版本依然是0.9.x,phonegap的功能特性并不穩(wěn)定,會(huì)有不少bug,要小心。
PhoneGap執(zhí)行流程
1、在Android項(xiàng)目的html頁面上執(zhí)行 事件 <a href="#" class="btn large" onclick="to_smssend();">Send SMS</a>
2、調(diào)用main.js中的to_smssend()方法
- //jimmy add smssend
- function to_smssend(){
- navigator.service.sms.smssend("13510567813","this is test phonegap----jimmyliu");
3、navigator.service.sms.smssend在Phonegap.js中定義javascript對(duì)象
- var MessageSend = function(){};
- MessageSend.prototype.smssend = function(phonenumber, message){
- //this.smsWin = callback;
- PhoneGap.exec(null, null, "MessageSend", "send", [phonenumber, message]);
- }
- PhoneGap.addConstructor(function() {
- if(typeof navigator.service == "undefined") navigator.service = new Object();
- if(typeof navigator.service.sms == "undefined") navigator.service.sms = new MessageSend();
- });
4、步驟3的執(zhí)行 是在 DroddGap的bindServer中添加的
- this.addService("MessageSend", "com.phonegap.MessageSend");//jimmy add
MessageSend服務(wù),該服務(wù)實(shí)際是個(gè)CallbackServer中的定義的ServerSocket 來處理的。
即JS在PhoneGap.exec執(zhí)行時(shí)存儲(chǔ)在List中,然后被ServerSocket的socket中執(zhí)行js處理
后續(xù)再做修改。
小結(jié):PhoneGap學(xué)習(xí)筆記之原理執(zhí)行實(shí)例的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!