很久没写博客,今天自己写一篇吧。来谈一谈c# PhoneGap,html5 与asp.net。能搜到这篇博客就说明你是一位.net开发者,即将或者正在从事移动开发。

大家可能都有疑,我是一名.net开发者,能用.net做苹果,安卓,wp平台的应用吗?

如大家所知,phoneGap是用来开发跨平台移动应用的,而且phoneGap能调用移动设置的硬件接口,实现一些普通html在移动设备上无法实现的功能,比如拍照,录音,录制视频等。

要做html5页面为单元的应用,一定少不了与服务器进行数据交互。想到的与服务器交互有两种方案:

一种是使用默认的本地HTML方式(当然也可以把HTML放在服务器端,但是这样还不如使用第二种方案),一种是全程使用服务器脚本,比如JSP页面,当然这些页面肯定是放在服务器端,客户端只需要在初始化的时候引用这个页面即可,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);
  }
}

(注释掉的代码为PhoneGap默认的本地HTML方案)

另一种是http请求即为服务器脚本解决方案

各有各的好处,本地HTML方案可以把代码和服务器端的代码隔离开,维护只需要维护客户端,无需修改服务器端,并且因为是本地读取,可以在无网络情况下使用应用程序(可以把资源保存在本地sqlLite数据库中);服务器脚本解决方案好处是代码简单,和开发普通web页面几乎无差别,甚至可以直接使用之前针对PC写好的web页面,JS识别设备动态更换一下CSS样式即可。

我使用的是本地HTML5解决方案,在数据交互上,使用的是ajax,使用jQuery的ajax方法,JS代码如下:

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,必将是主流,一起迎接吧!

C# asp.net PhoneGap html5的更多相关文章

  1. Webservice WCF WebApi 前端数据可视化 前端数据可视化 C# asp.net PhoneGap html5 C# Where 网站分布式开发简介 EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下? SQL Server之深入理解STUFF 你必须知道的EntityFramework 6.x和EntityFramework Cor

    Webservice WCF WebApi   注明:改编加组合 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下, ...

  2. [转]HTML5 Day 4: Add Drop Down Menu to ASP.NET MVC HTML5 Template using CSS and jQuery

    本文转自:http://pietschsoft.com/post/2010/11/17/HTML5-Day-4-Add-DropDown-Menu-ASPNET-MVC-HTML5-Template- ...

  3. PhoneGap & HTML5 学习资料网址

    PhoneGap 与 Application Cache应用缓存  http://www.html5cn.org/forum.php?mod=viewthread&tid=40272 加速We ...

  4. phonegap+html5开发app的一些总结

    1.Css3圆角白边:使用css3圆角效果时,在android某些机器上会产生白边,所以应该在圆角的div外套一个div(背景色和外部相同),然后有圆角效果的div 内部使用自己的背景色 border ...

  5. 七彩花都手机客户部分测试源码Phonegap+html5

    个人建设广州花都论坛,七彩花都(http://www.w30.cn)包含传值回复楼层的jsonp 可以加入我们的QQ群讨论 专注phonepap 核心加载 jsonp返回格式为 jsonp([{&qu ...

  6. PhoneGap Html5 App 横竖屏切换自动退出

    将以下内容添加到 AndroidManifest.xml 文件的 activity 标签中: android:configChanges="orientation|keyboardHidde ...

  7. 如何用HTML5+PhoneGap写个Path项目

    最近Path这个应用很火爆,网上也出现了不少仿Path菜单的项目.即使在原生APP里边,Path的效果也是非常赞的.我突然想,Web APP是不是也能做出类似Path那样的效果呢?于是就有了OPath ...

  8. HTML5简单入门系列(三)

    前言 本篇介绍HTML5支持的Web存储(Web Storage)和HTML 5 应用程序缓存. 客户端存储数据介绍 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没 ...

  9. HTML5多图片拖拽上传带进度条

    前言 昨天利用css2的clip属性实现了网页进度条觉得还不错,但是很多情况下,我们在那些时候用进度条呢,一般网页加载的时候如果有需要可以用,那么问题就来了,怎么才算整个加载完毕呢,是页面主要模块加载 ...

随机推荐

  1. 封装两个简单的Jquery组件

    Jquery给我们提供了很大的方便,我们把他看成是一个公共库,以致在这个公共库上延伸出了很多Jquery插件:在项目过程中,有些插件总是不那么令人满意: 主要说两个项目用途: 1.  遮罩层,跟一般的 ...

  2. C#事件与委托的区别

    C#事件与委托的区别 1. 委托 事件是利用委托来定义的,因此先解释委托.委托是一个类,它与其他类如int,string等没有本质区别,int代表的是所有的整形,而string代表的是字符串,委托则代 ...

  3. 图片轮播插件Nivo Slider

    推荐:图片轮播插件Nivo Slider         因为项目需要一款切换样式多一些的轮播插件,不经意找到了NivoSlider,非常好用,比bootstrap要好用,而且样式丰富.值得注意的是, ...

  4. Linq to XML的练习

    假如有以下XML: <?xml version="1.0" encoding="utf-8" ?> - <export> - <p ...

  5. node-webkit入门

    node-webkit入门   一.简介 node-webkit 是一个基于chromium与node.js的应用程序运行器,它允许开发者使用web技术编写桌面程序.通过Node.js和WebKit技 ...

  6. python 获取当前时间

    我有的时候写程序要用到当前时间,我就想用python去取当前的时间,虽然不是很难,但是老是忘记,用一次丢一次,为了能够更好的记住,我今天特意写下python 当前时间这篇文章,如果你觉的对你有用的话, ...

  7. Event对象的事件句柄

    <html> <!-- onresize 事件会在窗口或框架被调整大小时发生 --> <!--onresize="alert('窗口的大小得到变化就会执行我') ...

  8. MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查

    MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查 本文的目的:   1.MVC3项目简单配置EF code first生成并初始化数据 ...

  9. 登录验证全局控制的几种方式(session)

    在登陆验证或者其他需要用到session全局变量的时候,归结起来,主要有以下三种较方便的实现方式.(其中个人较喜欢使用第一种实现方法) 一,在一个公共类里创建一个公共方法,然后需要验证的页面都调用这个 ...

  10. mongoDB入门必读(概念与实战并重)

    一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是 ...