PhoneGap学习-执行原理

来源:互联网 发布:阿里云电话号码 编辑:程序博客网 时间:2024/05/16 10:05

 PhoneGap框架

    https://github.com/phonegap/phonegap-android

 

 

Phonegap介绍参考:  

 

  Phonegap:快速开发跨平台HTML5应用的胶水层 

http://blog.csdn.net/xyz_lmn/archive/2011/03/16/6253637.aspx

http://www.showmuch.com/article/article_4.html

 

在开发移动应用的过程当中,如果你的应用只定位在一种平台上,这可不是一个好主意,但是为许多不同的平台Building应用又是一件非常麻烦和非常不爽的事情,因为你会发现每一种手机平台都有自己的SDK,它们需要使用不同语言来进行开发,你可能不得不需要5、6个代码仓库来管理不同设备上的代码,而且需要不同设备的开发人员来开发维护这些仓库,你还不得不装上各个设备的sdk,设置好路径和各种配置信息,来编译不同设备上的应用包。
那么移动网站模式是不是一个可以接受的替代方案呢?幸运的是移动应用和移动网站并不是对立的两端,通过Phonegap我们可以采用html5的网站形式来开发移动应用。也许开源Phonegap 会成为 WebApp 上设备端开发的事实上标准,ShowMuch本期就为你推荐移动开发利器:PhoneGap。
我们先来看看PhoneGap的特性:

  • 支持6种移动设备平台:iOS, Android, BlackBerry, WebOS, Symbian WRT, Windows Mobile(内部测试),以及桌面环境(内部测试)
  • HTML5 + CSS3 + JavaScript  利用标准的Web技术开发应用
  • Phonegap Build: write once, compile on cloud, run anywhere. 提供在线Builder平台:只写一次,云端编译,运行在任何地方
  • 目前已经有上千基于Phonegap的应用在AppStore上
  • Phonegap 目前标注的版本依然是0.9.x,phonegap的功能特性并不稳定,会有不少bug,要小心。

 

PhoneGap执行流程

      1.   在Android项目的html页面上执行 事件  <a href="#" class="btn large" onclick="to_smssend();">Send SMS</a>

      2.   调用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对象

 

        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的执行 是在 DroddGap的bindServer中添加的

        this.addService("MessageSend", "com.phonegap.MessageSend");//jimmy add

     MessageSend服务,该服务实际是个CallbackServer中的定义的ServerSocket 来处理的。

     即JS在PhoneGap.exec执行时存储在List中,然后被ServerSocket的socket中执行js处理

 ----------------

  后续再做修改。

 

 

 

 

 

 

 

参考站点:

http://www.iphonedevsdk.com

http://appinventor.googlelabs.com

http://www.mhtml5.com/

http://groups.google.com/group/phonegap

http://phonegap.lighthouseapp.com

http://blog.spbk.net

http://urbanairship.com

http://stackoverflow.com/

http://blog.gmane.org/