现在的移动平台有Android、iOS、Windows Phone等好几种,同一款应用程序移植到不同的平台要从头做过,花费的力气很大。如果换做Web页面就很容易跨平台了,不管什么系统,打开浏览器就可以使用。但是普通的Web页面有很多不方便,比如无法使用本地的资源,像摄像头、通讯录等。而PhoneGap就是介于原生应用与普通Web页面之间的。它是一个开源的开发框架,它通过浏览器,可以轻松的实现跨平台。开发人员利用它,就可以使用HTML、JavaScript、CSS来完成应用的开发,并且也可以调用本地的摄像头、通讯录等资源。在某一个平台开发完成后,通过比较少的调整,就可以发布到另外的平台。

今天我看了一下PhoneGap,并且小试了一下做了一个查看通讯录的Demo。

首先按照官方的教程http://docs.phonegap.com/en/1.5.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android,完成一个HelloWorld。

然后修改www目录下的index.html为以下内容:

[html]view plaincopy
  1. <!DOCTYPEHTML>
  2. <html>
  3. <head>
  4. <metacontentType="text/html;charset=utf-8"/>
  5. <title>ContactExample</title>
  6. <styletype="text/css">
  7. .contact{
  8. padding:5px;
  9. border-bottom:1pxsolidgray;
  10. }
  11. </style>
  12. <scripttype="text/javascript"charset="utf-8"src="cordova-1.5.0.js"></script>
  13. <scripttype="text/javascript"charset="utf-8"src="jquery-1.7.2.min.js"></script>
  14. <!--scripttype="text/javascript"charset="utf-8"src="jquery.mobile-1.0.1.js"></script-->
  15. <scripttype="text/javascript"charset="utf-8">
  16. $(function(){
  17. //WaitforPhoneGaptoload
  18. //
  19. document.addEventListener("deviceready",onDeviceReady,false);
  20. //PhoneGapisready
  21. //
  22. functiononDeviceReady(){
  23. varoptions=newContactFindOptions();
  24. varfields=["displayName","phoneNumbers"];
  25. navigator.contacts.find(fields,onSuccess,onError);
  26. }
  27. varlist=$("#contacts");
  28. functiononSuccess(contacts){
  29. for(vari=0;i<contacts.length;i++){
  30. /*console.log("DisplayName="+contacts[i].displayName);*/
  31. $("<pclass='contact'/>").text(contacts[i].displayName)
  32. .data("name",contacts[i].displayName)
  33. .data("number",contacts[i].phoneNumbers[0].value)
  34. .click(function(){
  35. $("#name").text($(this).data("name"));
  36. $("#number").text($(this).data("number"));
  37. $("#detail").show();
  38. $("#contacts").hide();
  39. })
  40. .appendTo(list);
  41. }
  42. }
  43. //onError:Failedtogetthecontacts
  44. //
  45. functiononError(contactError){
  46. alert('onError!');
  47. }
  48. $("#back").click(function(){
  49. $("#detail").hide();
  50. $("#contacts").show();
  51. });
  52. });
  53. </script>
  54. </head>
  55. <body>
  56. <h1>通讯录</h1>
  57. <divid="contacts"></div>
  58. <divid="detail"style="display:none">
  59. 姓名:<spanid="name"></span><br/>
  60. 手机号:<spanid="number"></span><br/>
  61. <divstyle="text-align:center;margin-top:10px"><buttonid="back"style="width:90px;height:60px;">返回</button></div>
  62. </div>
  63. </body>
  64. </html>

这里我用到了JQuery,需要把jquery下载回来放到www目录。之前我还把jquery.mobile也引入到页面中来了,这样的话Button的值会显示两遍(比如会显示两个返回,一个显示在Button上面,一个显示在Button左边)。可能是jquery.mobile与谁有冲突。

然后贴一下效果图:

首先展示通讯录列表,点击任一行查看详细。

转自:http://blog.csdn.net/nairuohe/article/details/7422661

更多相关文章

  1. 安全新手入坑——HTML标签
  2. Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
  3. 一篇文章了解大前端
  4. Android启动页面定时跳转的三种方法
  5. android平台yuv缩放相关
  6. android离开一个页面时关闭子线程
  7. Android再按一次完全退出程序及禁止返回上一个界面等
  8. android 微信分享
  9. js判断ios/Android,页面跳至对应页面

随机推荐

  1. Activity页面切换的效果
  2. Android ADT 下载 ( ADT-23.0.7 )
  3. Android:国家气象局天气预报接口JSON完全
  4. Android: QQ UI 设计
  5. android studio查看genymotion模拟器上文
  6. Android Framework---styles.xml
  7. adb下载
  8. Android可拖动的ImageView
  9. Android实现主动连接蓝牙耳机
  10. Android改变Spinner弹出框的位置