1.1. Hybrid App½éÉÜ
Ëæ×ÅHtml5µÄÐËÆðÒÔ¼°ÊÖ»úÓ²¼þÐÔÄܵÄÌáÉý£¬Ô½À´Ô½¶àµÄÒÆ¶¯Ó¦ÓòÉÓÃWeb¼¼Êõ½øÐпª·¢£¬´Ó¶ø²úÉúÁËÒ»ÖÖеÄÓ¦ÓýÐ
Hybrid App£¨»ìºÏÐÍÒÆ¶¯Ó¦Óã©¡£ËùνµÄ»ìºÏÄ£Ê½ÒÆ¶¯Ó¦Óã¬ÊÇÖ¸Ò»ÖÖ½éÓÚNative App(±¾µØÔÉúÓ¦ÓÃ)ÓëWeb App (ÍøÒ³Ó¦ÓÃ)Ö®¼äµÄÓ¦Ó㬸ÃÀàÓ¦ÓõĿª·¢³ýÁËʹÓõ½±¾µØÆ½Ì¨¿ª·¢¼¼Êõ£¨Android¡¢iOS¡¢ BlackBerryµÈ£©Í⣬²¿·Ö¹¦ÄÜ»¹Ê¹ÓÃÁËWeb¼¼Êõ£¬Í¨¹ýÄÚǶä¯ÀÀÆ÷ÏÔÊ¾ÍøÒ³µÄ·½Ê½À´ÊµÏÖ£¬Ä¿Ç°ÊÐÃæÉϺöàÒÆ¶¯Ó¦Óö¼ÊÇ»ìºÏÐ͵ģ¬ÏñQQ£¬Î¢ÐÅ£¬Ö§¸¶±¦£¬ÌÔ±¦µÈ¡£
1.2. Hybrid AppÌØµã
Óë±¾µØÔÉúÓ¦ÓÃÏà±È£¬»ìºÏÐÍÓ¦ÓÃÓÐÁ½¸öÖ÷ÒªµÄÓÅÊÆ£ºÒ»¸öÊÇ¿çÆ½Ì¨£¬²»ÓÃÔÙÕë¶Ô²»Í¬µÄÒÆ¶¯Æ½Ì¨½øÐпª·¢£¬´ó´ó½µµÍÁË¿ª·¢µÄ³É±¾£»ÁíÍâÒ»¸öÊÇÉý¼¶Î¬»¤±äµÃÈÝÒ׺ͼòµ¥£¬Ö»Ðè¸üÐÂÍøÒ³¼´¿É£¬²»ÐèÒªÓû§ÖØÐÂÏÂÔØ°²×°°ü½øÐÐÉý¼¶£»²»×ãµÄµØ·½±íÏÖÔÚËٶȺÍÓû§ÌåÑéÉÏ£¬µ«Ëæ×ÅÒÆ¶¯Ó²¼þÐÔÄܵÄÌáÉý£¬Õâ¸ö²î¾àÕýÔÚÖð½¥ËõС¡£
| ¡¡¡¡ |
Web App£¨ÍøÒ³Ó¦Óã© |
Hybrid App£¨»ìºÏÐÍÓ¦Óã© |
Native App£¨ÔÉúÓ¦Óã© |
| ¿ª·¢³É±¾ |
µÍ |
ÖÐ |
¸ß |
| ά»¤¸üР|
¼òµ¥ |
¼òµ¥ |
¸´ÔÓ |
| ÌåÑé |
²î |
ÖÐ |
ÓÅ |
| °²×° |
²»ÐèÒª |
ÐèÒª |
ÐèÒª |
| ¿çƽ̨ |
ÓÅ |
ÓÅ |
²î |
ͼ1£ºWeb App¡¢Hybrid App¡¢Native App Ö®¼äµÄ¶Ô±È
1.3. »ùÓÚCordova½øÐÐHybrid App¿ª·¢
ÄÇô£¬ÈçºÎ¿ìËٵظßЧµØ¿ª·¢ÕâÖÖ»ìºÏÐÍÓ¦ÓÃÄØ£¿Ä¿Ç°Óв»ÉÙÓÃÓÚ¿ª·¢Hybrid AppµÄÒÆ¶¯¿ª·¢¿ò¼Ü£¬±ÈÈçPhoneGap/Cordova¡¢WeX5¡¢APICloud¡¢Appcelerator¡¢ExMobiµÈ¡£±¾ÎÄÖ÷Òª½éÉÜÈçºÎʹÓÃPhoneGap/Cordova¿ò¼ÜµÄ½øÐÐHybrid AppµÄ¿ª·¢£¬ÏÂÃæÏÈÁ˽âÒ»ÏÂPhoneGapÓëCordova¡£
1.3.1. PhoneGapÓëCordova
PhoneGapÊÇÒ»¸öʹÓÃWeb¼¼Êõ£¨HTML£¬CSSºÍJavaScript£©¿ª·¢¿çÆ½Ì¨ÒÆ¶¯Ó¦ÓõÄÃâ·ÑÇÒ¿ªÔ´¿ò¼Ü£¬Ä¿Ç°ºÜ¶àÖ÷Á÷µÄÒÆ¶¯¿ª·¢¿ò¼Ü¾ùÔ´ÓÚPhoneGap£¬±ÈÈçWeX5¡¢appMobi¡¢WorklightµÈ¡£¶øÒªÁ˽âCordova£¬µÃÏÈÁ˽âÒ»ÏÂPhoneGapµÄһЩ±³¾°£º
PhoneGap¿ò¼ÜµÄÆðÔ´ÓÚ¼ÓÄôóÒ»¼Ò½ÐNitobiµÄÈí¼þ¹«Ë¾£¬08ÄêÒ»´ÎiOS¿ª·¢Õß´ó»áÉÏ£¬¸Ã¹«Ë¾µÄ¼¸¸öÈËÌá³öÒ»¸öÏë·¨£ºBridging the gap between the web and the iPhone sdk£¬Ïë×öÒ»¸ö¹¤¾ßÀ´ÃÖ²¹WebºÍiOS¿ª·¢Ö®¼äµÄ²»×㣬
ÕâÊÇPhoneGapÃû×ÖµÄÀ´Ô´¡£
2011Äê10Ô£¬AdobeÊÕ¹ºÁË´´Á¢PhoneGapÏîÄ¿µÄNitobi¹«Ë¾£¬Ëæºó°ÑPhoneGapÏîÄ¿¾è¸øÁËApache»ù½ð»á£¬µ«Adobe±£ÁôÁËPhoneGapµÄÉ̱êËùÓÐȨ¡£¹ÊÏîÄ¿µ½ÁËApacheÆìÏ£¬¸ÄÁ˸öÃû×Ö½ÐApache Callback£¬ÒòΪÃû×ÖºÁÎÞÐÂÒ⣬ºóÀ´ÓÖ×÷ÁËÒ»´Î¸ÄÃû£¬¼´ÏÖÔÚµÄ
Apache Cordova¡£CordovaÊÇNitobiÍŶӵ±Ê±×øÂäµÄ½ÖµÀÃû³Æ£¬ÓôËÃûÀ´¼ÍÄîNitobiÍŶӵűÏס£
µ½´Ë£¬ÎÒÃDz¶àÁ˽âPhoneGapÓëCordovaÖ®¼äµÄ¹ØÏµÁË£º
CordovaÊÇAdobe¹«Ë¾°ÑPhoneGap¾è¸øApacheºóÐÂÆðµÄÃû×Ö£¬Ëü×÷Ϊһ¸ö¿ªÔ´ÏîÄ¿£¬ÊÇ´ÓPhoneGapÖгéÈ¡³öÀ´µÄºËÐÄ£¬CordovaÓëPhoneGapµÄ¹ØÏµ¾ÍÀàËÆÓÚWebKitÓëChrome»òSafariµÄ¹ØÏµ¡£
1.3.2.»ùÓÚCordova¿ª·¢Hybrid App
Á˽âÍêCordovaÖ®ºó£¬ÏÂÃæ¿ÉÒԴ»·¾³£¬ÊµÏÖÎÒÃǵÄÀý×ÓÁË¡£
1.3.2.1. Cordova¿ª·¢×¼±¸¹¤×÷
1.3.2.1.1. °²×°nodeJS
¹ÙÍøÏÂÔØµØÖ·£ºhttps://nodejs.org/
CordovaÊÇÀûÓÃnodeJS½øÐйÜÀíµÄ£¬ËùÒÔÐèÒªÏÈÏÂÔØnodeJS¡£ÏÂÔØ°²×°Íêºó£¬ÔÚcmdÖÐÊäÈënpm -version£¬Èç¹û¿´µ½°æ±¾ºÅÔò±íʾ°²×°³É¹¦ÁË£¬ÈçÏÂͼËùʾ£º
NPMµÄÈ«³ÆÊÇNode Package Manager£¬ÊÇÒ»¸önodeJS°ü¹ÜÀíºÍ·Ö·¢¹¤¾ß£¬ÒѾ³ÉΪÁ˷ǹٷ½µÄ·¢²¼NodeÄ£¿é£¨°ü£©µÄ±ê×¼¡£nodeJSÌṩÁËһЩ»ù±¾Ä£¿é£¬µ«½ö½öÒÀ¿¿ÕâЩ»ù±¾Ä£¿é¿ÉÄÜ»¹²»ÄÜÂú×ãʵ¼Ê¿ª·¢ÐèÇó£¬Òò´Ë»áÓõ½ºÜ¶àµÄnodeJS¿âºÍ¿ò¼Ü¡£µ«ÖÚ¶àµÄ¿â»ò¿ò¼Ü¹ÜÀíÆðÀ´ÓÖºÜÂé·³£¬Òò´ËÓÐÁËNPM£¬Í¨¹ýËü¿ÉÒԺܿìµÄÕÒµ½ÒªÊ¹Óõİü£¬½øÐÐÏÂÔØ¡¢°²×°ÒÔ¼°¹ÜÀíÒѾ°²×°µÄ°ü¡£
1.3.2.1.2. °²×°Cordova
ÔÚcmdÖÐÖ´ÐÐÈçϰ²×°CordovaµÄÃüÁʼ°²×°£º
npm install -g cordova
Ö®ºó£¬Äã¿ÉÄÜÐèÒªµÈ´ýºÜ³¤Ò»¶Îʱ¼ä¡£ÔÚ¹úÄÚʹÓÃNPMÊǺÜÂý£¬¿ÉÄÜÊÇÒòΪGFWµÄÔÒò£¬ÎÒÃÇ¿ÉÒÔʹÓÃÌÔ±¦µÄnpm½â¾ö´ËÎÊÌ⣬¾ßÌå²Ù×÷ÈçÏ£º
µÚÒ»²½£ºÃüÁîÐÐÏÂÊäÈ룺
npm config set registry https://registry.npm.taobao.org
µÚ¶þ²½£ºÔÙÖ´ÐÐÒÔÏÂÃüÁ
npm info underscore
Èç¹ûµÚÒ»²½ÅäÖÃÕýÈ·£¬Õâ¸öÃüÁîÓ¦¸Ã»áÓÐÀàËÆÏÂÃæµÄÊä³ö£º
½ÓÏÂÀ´ÔÙÖ´ÐÐÉÏÃæ°²×°CordovaµÄÃüÁî¾Í¿ÉÒÔÁË£¬°²×°³É¹¦ºó£¬ÔÚcmdÖÐÊäÈëcordova -vÔò»áÏÔʾÏàÓ¦µÄ°æ±¾ºÅ£¬ÈçÏÂͼËùʾ£º
1.3.2.1.3. °²×°Apache Ant
ÏÂÔØµØÖ·£ºhttp://apache.fayea.com/apache-mirror/ant/binaries/
ÉèÖû·¾³±äÁ¿£¬Ð½¨£ºANT_HOME=E:\ant\apache-ant-1.9.4
PathÖÐÌí¼Ó£º%ANT_HOME%\bin;
1.3.2.1.4. °²×°Android SDK
ÏÂÔØ°²×°Android SDK£¬Ð½¨ANDROID_HOME»·¾³±äÁ¿£¬ÉèÖÃΪsdk°²×°µÄ¸ùĿ¼£¬²¢°ÑsdkÏÂÃæµÄtoolsºÍplatform-toolsÁ½¸öĿ¼ÅäÖõ½»·¾³±äÁ¿pathÖС£
1.3.2.1.5. ´´½¨CordovaSampleÏîÄ¿
µÚÒ»²½£º½øÈ빤×÷¿Õ¼äĿ¼£¨ÀýÈ磺D:\workspace_cordova£©£¬cmdÖÐÖ´ÐÐÒÔÏÂÃüÁî´´½¨Ò»¸ö½ÐCordovaSampleµÄÏîÄ¿£º
cordova create CordovaSample cn.itcast.cordova CordovaSample
µÚÒ»¸ö²ÎÊýCordovaSample£¬Ö¸¶¨Ä¿Â¼Ãû³Æ£»
µÚ¶þ¸ö²ÎÊýcn.itcast.cordovaΪJava°üÃû£»
µÚÈý¸ö²ÎÊýCordovaSample Ö¸¶¨ÁËÓ¦ÓóÌÐòµÄÏÔʾ±êÌ⣻
µÚ¶þ²½£º½øÈëCordovaSample Ŀ¼£º
cd CordovaSample
µÚÈý²½£ºÌí¼ÓÏîĿҪ֧³ÖµÄÒÆ¶¯Æ½Ì¨£¨´Ë´¦±íʾÌí¼ÓÖ§³ÖAndroidƽ̨£©
cordova platform add android
µÚËIJ½£º°ÑCordovaSample×÷ΪAndroid¹¤³Ìµ¼Èëµ½eclipseÖУº
±àÒëû±¨´í£¬¾Í¿ÉÒÔÔËÐÐÁË£¬Ö´Ðнá¹ûÈçÏÂͼËùʾ£º
ͼ2 CordovaSampleÔËÐнá¹û
ÒÔÉϲÙ×÷¿ÉÄÜ»á³öÏÖµÄÎÊÌ⣺ÄãµÄsdkµÄ°æ±¾Ì«µÍ»ò²»Æ¥Å䣬»òÕßÏîÄ¿µ¼Èëµ½eclipeºó±àÒë³ö´í£¬ÕâʱÄãÐèÒª°ÑÄãµÄAndroid SDKÉý¼¶µ½Ò»¸ö±È½Ï¸ßµÄ°æ±¾£¬±ÈÈçandroid 5.0¡£
1.3.2.1.6. Ìí¼Ó²å¼þÖ§³Ö
ÈçÉÏͼ2ÎÒÃÇ¿´µ½µÄ£¬CordovaĬÈÏÌṩµÄ³ÌÐò½çÃæºÍ¹¦Äܷdz£¼òµ¥¡£µ±È»Äã¿ÉÒÔ¸ù¾ÝÄãµÄÐèÒª£¬ÔËÐбê×¼Web¿ª·¢¼¼Êõ¶ÔÒ³Ãæ½øÐÐÉè¼Æ¡£µ±ÄãÐèÒªºÍ²»Í¬µÄÉ豸½øÐÐͨѶ½»»¥Ê±£¬Äã¾ÍÐèÒª½èÖúÓÚһЩ²å¼þ£¬ÒÔ±ãÄܹ»·ÃÎÊCordovaÌṩµÄºËÐÄAPI¡£Ò»°ãÀ´Ëµ£¬ÄãÌí¼ÓÒ»¸ö²å¼þµÄÄ¿µÄÊÇΪÁËÀûÓÃCordovaµÄAPI·ÃÎÊÉ豸¡£ÏêϸµÄ¿ÉÓòå¼þÁбíÄã¿ÉÒÔÔÚÉçÇøÖп´µ½:http://plugins.cordova.io
Äã¿ÉÒÔͨ¹ýÒÔÏÂÃüÁî°²×°²å¼þ£¬ÀýÈç:
cordova plugin add org.apache.cordova.camera // ÉãÏñÍ·
cordova plugin add org.apache.cordova.vibration // Õð¶¯
cordova plugin add org.apache.cordova.contacts // ÁªÏµÈË
Äã¿ÉÒÔÓÃÒÔÏÂÃüÁî²é¿´ËùÓÐÒѾ°²×°µÄ²å¼þ
cordova plugin ls
ʹÓÃÒÔÏÂÃüÁîɾ³ý²å¼þ£º
cordova plugin rm org.apache.cordova.console
1.3.2.2. ÔÚÍøÒ³ÖÐʵÏÖÒµÎñÂß¼´úÂë
ÐÞ¸ÄÏîÄ¿ÖÐassets/www/index.htmlÎļþ£¬ÔÚ<header>ÖÐÒýÈëcordova¿ª·¢¿â£¬²¢ÊµÏÖÒµÎñ´úÂëshowDialog·½·¨£»µ±µã»÷<body>Öеij¬Á´½Óʱ£¬»áµ÷ÓÃshowDialog()·½·¨£¬Ôڸ÷½·¨Öлáµ÷ÓÃcordova sdkµ¯³öandroidÔÉú¶Ô»°¿ò£º
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
function showDialog(){
navigator.notification.alert("ÄãºÃCordova!");
}
</script>
<title>Hello Cordova</title>
</head>
<body>
<h1>Hello Cordova</h1>
<a onClick="showDialog()" href="">ÏÔʾ¶Ô»°¿ò</a>
</body>
</html> |
Ö´ÐÐÔËÐнá¹ûÈçÏÂͼËùʾ£º
ÖÁ´Ë£¬ÎÒÃÇʹÓÃCordova¿ª·¢Anroid Hybrid AppµÄÀý×Ó¾ÍʵÏÖÍêÁË¡£
±¾ÎİæÈ¨¹éÀÖÓã²¥¿ÍAndroidÅàѵѧԺËùÓУ¬»¶Ó×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦¡£Ð»Ð»£¡
×÷ÕߣºÀÖÓã²¥¿ÍAndroidÅàѵѧԺ
Ê×·¢£ºhttp://www.itcast.cn/android/