C# asp.net PhoneGap html5

好久沒寫博客,今天本身寫一篇吧。來談一談c# PhoneGap,html5 與asp.net。能搜到這篇博客就說明你是一位.net開發者,即將或者正在從事移動開發。javascript

你們可能都有疑,我是一名.net開發者,能用.net作蘋果,安卓,wp平臺的應用嗎?html

如你們所知,phoneGap是用來開發跨平臺移動應用的,並且phoneGap能調用移動設置的硬件接口,實現一些普通html在移動設備上沒法實現的功能,好比拍照,錄音,錄製視頻等。html5

要作html5頁面爲單元的應用,必定少不了與服務器進行數據交互。想到的與服務器交互有兩種方案:java

一種是使用默認的本地HTML方式(固然也能夠把HTML放在服務器端,可是這樣還不如使用第二種方案),一種是全程使用服務器腳本,好比JSP頁面,固然這些頁面確定是放在服務器端,客戶端只須要在初始化的時候引用這個頁面便可,Android客戶端,代碼以下:android

public class MyActivity extends DroidGap {
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  //super.loadUrl("file:///android_asset/login.html");
  super.loadUrl("http://220.166.32.204:8080/test/login.jsp");
  super.setIntegerProperty("loadUrlTimeoutValue", 15000);
  }
} web

(註釋掉的代碼爲PhoneGap默認的本地HTML方案)ajax

另外一種是http請求即爲服務器腳本解決方案sql

各有各的好處,本地HTML方案能夠把代碼和服務器端的代碼隔離開,維護只須要維護客戶端,無需修改服務器端,而且由於是本地讀取,能夠在無網絡狀況下使用應用程序(能夠把資源保存在本地sqlLite數據庫中);服務器腳本解決方案好處是代碼簡單,和開發普通web頁面幾乎無差異,甚至能夠直接使用以前針對PC寫好的web頁面,JS識別設備動態更換一下CSS樣式便可。數據庫

我使用的是本地HTML5解決方案,在數據交互上,使用的是ajax,使用jQuery的ajax方法,JS代碼以下:json

function pullNoticeList(){
 $.ajax({
  url:addr+"notice_list.action",
  type:"POST",
  dataType:"jsonp",
  data:{"start":"0","limit":"8","sort":"effectiveDate","dir":"DESC"},
  beforeSend: function(){
  $("#content").html("<p>數據拉取中,請稍後...</p>").trigger("create");
  },
  success:function(response){
  var startHtml = '<ul id="listview" data-role="listview" data-theme="c">';
  var endHtml = "<li id='more'><p >;
  $.each(response.noticeList,function(index,item){
  startHtml+="<li><a href='javascript:showDetail("+item.noticeId+");'><p>"+item.noticeTitle+"<span class='ui-li-aside'>"+item.effectiveDate+"</span></p></a></li>";
  });
  $("#content").html(startHtml+endHtml).trigger("create");
  },
  error:function(){
  showReConnConfirm();
  }
 });
}

必須使用jsonp格式,否則無返回值,其次,注意返回的json格式,必定要符合jQuery的json格式,能夠經過firedug查看調試json,服務器端使用的struts,可使用struts的json插件,能夠很智能把對象封裝成json格式。

若是你想用phoneGap作一款跨平臺的應用,首先要肯定會不會調用移動設備的硬件接口,若是不須要調用,那麼第一張方案是最佳的選擇,維護開發與日常web幾乎沒區別,最佳的適合咱們.net開發者,由於咱們能夠直接選擇用aspx頁面來開發。

可是若是項目有要求要調用移動設備的硬件接口,那麼必需要選擇用第二種方案了。

這時,與服務器交互,html5端用ajax,後臺能夠用aspx,或者ashx,或者asmx,即分別對應普通aspx頁面或者通常處理程序ashx頁面,或者直接寫webservice服務都行。但願能幫到你們。

移動開發html5,必將是主流,一塊兒迎接吧!

相關文章
相關標籤/搜索