第一次接触PhoneGap

PhoneGap就是将html+css+js转成移动的APP,包括的移动平台有ios,android,黑莓等。

PhoneGap的优势是跨平台,即只需要编写一次代码就可以在不同移动平台运行。

phoneGap的劣势是交互能力不好,只适合交互性弱的项目,如读书APP之类的应用。运行效率低,因为PhoneGap的运行,依赖于移动设备上的内置浏览器的Webkit, 所以运行速度上自然是比Native App慢。并且不能支持全部的系统API。


PhoneGap的配置 :
http://blog.jobbole.com/72590/

nodejs的配置:
http://www.cnblogs.com/linjiqin/p/3765390.html

第一个phoneGap实例:
http://www.jb51.net/html5/80728.html

cordova3.4 jar和js文件下载地址:
http://download.csdn.net/download/xiaoluo5238/7793119

PhoneGap项目结构:

这里写图片描述

Activity

这里写图片描述


亲测根据上面的4个网站提高的资料可以运行最基础的phoneGap实例。


2016/4/18更新

PhoneGap分析:
Web APP, Native APP, Hybird APP

1.Web APP :
采用html+javascript+css等web技术。

优点:通过不同平台的浏览器来访问应用达到跨平台的功能。并且可以使用HTML5。

缺点:基于浏览器的应用无法调用系统API来实现一些高级的功能呢。


2.
Native APP :
原生APP,使用不同平台特定开发语言来开发应用。

优点:可以完全调用系统API和平台特性,性能也是最好的。

缺点:由于开发技术不同,覆盖多个平台则需要针对多个平台独立开发,没有跨平台性。


3.
Hybird APP :
web开发人员可以0成本转型移动应用开发者。
其次,可以通过包装好的接口,调用大部分常用的系统API,PhoneGap正式Hybird APP目前框架中集大成者。

==================

Adobe dreamweaver 5.5版本为phonegap提供了优越的开发环境。

PhoneGap开发需要使用技能:html+css+javascript。特别是javascrpit+jquery mobil框架ajax通讯技术。

=================

PhoneGap优缺点:

优点:
1.跨平台性
2.易用性(不需要自己调用平台资源,phoneGap框架可以完成)
3.提供硬件访问控制(JS的类,可以直接访问硬件,比如相机,加速,GPS等)
4.配合javascripy框架
5.方便安装和使用

缺点:
1.运行速度慢(比原生的差很多,基于浏览器webkit)
2.不适合部分程序(3D,频繁刷新)
3.不能调用全部的平台资源
4.内存消耗大
5.调试难度大(只能使用firefox firebug调试)

转载于:
http://blog.csdn.net/happyflyingave/article/details/23431911


2016/5/6更新

Phonegap访问第三方的api接口,可以使用ajax

注意:这样可以在网页是访问,不过在设备(手机)上却无法访问。
原因:因为phonegap有一个白名单机制,需要在android的res目录下添加xml/config.xml
这里写图片描述


config.xml

<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns     = "http://www.w3.org/ns/widgets"
        id        = "io.cordova.helloCordova"
        version   = "2.0.0">
    <name>Hello Cordova</name>

    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>

    <author href="http://cordova.io" email="dev@cordova.apache.org">
        Apache Cordova Team
    </author>

    <access origin="*"/>

    <!-- <content src="http://mysite.com/myapp.html" /> for external pages -->
    <content src="index.html" />

    <preference name="loglevel" value="DEBUG" />
    <!--
      <preference name="splashscreen" value="resourceName" />
      <preference name="backgroundColor" value="0xFFF" />
      <preference name="loadUrlTimeoutValue" value="20000" />
      <preference name="InAppBrowserStorageEnabled" value="true" />
      <preference name="disallowOverscroll" value="true" />
    -->

    <feature name="App">
      <param name="android-package" value="org.apache.cordova.App"/>
    </feature>
    <feature name="Geolocation">
      <param name="android-package" value="org.apache.cordova.GeoBroker"/>
    </feature>
    <feature name="Device">
      <param name="android-package" value="org.apache.cordova.Device"/>
    </feature>
    <feature name="Accelerometer">
      <param name="android-package" value="org.apache.cordova.AccelListener"/>
    </feature>
    <feature name="Compass">
      <param name="android-package" value="org.apache.cordova.CompassListener"/>
    </feature>
    <feature name="Media">
      <param name="android-package" value="org.apache.cordova.AudioHandler"/>
    </feature>
    <feature name="Camera">
      <param name="android-package" value="org.apache.cordova.CameraLauncher"/>
    </feature>
    <feature name="Contacts">
      <param name="android-package" value="org.apache.cordova.ContactManager"/>
    </feature>
    <feature name="File">
      <param name="android-package" value="org.apache.cordova.FileUtils"/>
    </feature>
    <feature name="NetworkStatus">
      <param name="android-package" value="org.apache.cordova.NetworkManager"/>
    </feature>
    <feature name="Notification">
      <param name="android-package" value="org.apache.cordova.Notification"/>
    </feature>
    <feature name="Storage">
      <param name="android-package" value="org.apache.cordova.Storage"/>
    </feature>
    <feature name="FileTransfer">
      <param name="android-package" value="org.apache.cordova.FileTransfer"/>
    </feature>
    <feature name="Capture">
      <param name="android-package" value="org.apache.cordova.Capture"/>
    </feature>
    <feature name="Battery">
      <param name="android-package" value="org.apache.cordova.BatteryListener"/>
    </feature>
    <feature name="SplashScreen">
      <param name="android-package" value="org.apache.cordova.SplashScreen"/>
    </feature>
    <feature name="Echo">
      <param name="android-package" value="org.apache.cordova.Echo"/>
    </feature>
    <feature name="Globalization">
      <param name="android-package" value="org.apache.cordova.Globalization"/>
    </feature>
    <feature name="InAppBrowser">
      <param name="android-package" value="org.apache.cordova.InAppBrowser"/>
    </feature>
    <!-- Deprecated plugins element. Remove in 3.0 -->
    <plugins>
    </plugins>
</widget>

参考网址:
http://topmanopensource.iteye.com/blog/1578060
http://blog.csdn.net/aaawqqq/article/details/22441867


ajax代码
js


function myAjax(carNo) {
    $.ajax({
        type: "POST",
        async: false,
        url: "http://api.jisuapi.com/transit/line?cityid=95&transitno=" + carNo + "&appkey=c60829acb1faeecc",
        dataType: "jsonp",
        jsonp: "callback", //传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
        jsonpCallback: "itemsListGet", //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
        success: function(json) {
            // 访问成功
            if (json.status == 0) {
                myCallback(json);
            }
        },
        error: function() {
            alert('fail');
        }
    });
}


/**
 *访问成功后的回调方法
 * @param {Object} json
 */
function myCallback(json) {
    var ul = getUl("list");
    for (var i = 0; i < json.result[0].list.length; i++) {
        var txt = json.result[0].list[i].sequenceno + "  " +
            json.result[0].list[i].station;
        addLi(ul, txt);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值