ÏîÄ¿ÖÐÒªÓÃPhoneGap¿ª·¢£¬Á˽âÁËÏ»ù±¾¹æÔò£¬¼Ç¼һÏ£¬ÒÔ±¸ºó²é¡£(Ö»Õë¶ÔAndroidƽ̨)
Ò»¡¢°²×°
ÔÚ°²×°PhoneGap¿ª·¢»·¾³Ö®Ç°£¬ÐèÒªÏȰ²×°ÒÔÏ¿ò¼Ü£º
1.Java SDK
2.Eclipse
3.Android SDK
4.ADT Plugin
5.PhoneGap
˵Ã÷£º
1.Java SDKÖ±½ÓÏÂÔØ°²×°¼´¿É£¬Ã»Ê²Ã´¿É˵µÄ£¬°²×°²»Á˾ÍÊÇÈËÆ·ÎÊÌâÁË;
2.Eclipse Ò²ÊÇÖ±½ÓÏÂÔØ°²×°£¬½¨ÒéΪclassic°æµÄ;
3.Android SDKºÍADT Plugin°²×°Íê³Éºó£¬ÖØÆôeclipse½øÈëWindow->Android
SDK Manager½øÐÐÑ¡ÔñÒª°²×°µÄAndroid¿ª·¢¿ò¼Ü½øÐа²×°
4.PhoneGap°ü²»Óð²×°£¬Ö±½Ó½âѹ¡£
¶þ¡¢µÚÒ»¸öPhoneGapÏîÄ¿
1.ÔÚeclipseÖÐн¨Android Project£¬Ãû×ÖÉñÂíµÄËæ±ãÈ¡°É£»
2.ÔÚÏîÄ¿µÄĿ¼Ï£¬½¨Á½¸öÎļþ¼Ð£º
/libs
/assets/www
3.½øÈ뽫¸Õ¸ÕÏÂÔØ²¢½âѹµÄPhoneGap°üÀïAnroidĿ¼£¬ÎÒÃÇÐèÒªµÄ×ÊÔ´¶¼ÔÚÕâ¸öĿ¼Ï¡£
½«phonegap-x.x.x.jsÕâ¸öjsÎļþ(¾ßÌåÃû³ÆÊÓµ±Ê±ÏÂÔØµÄ°æ±¾¶ø¶¨)copyµ½/assets/wwwĿ¼ÏÂ,
°Ñphonegap.jarÎļþcopyµ½/libsĿ¼Ï¡£
ÔÙ°ÑxmlĿ¼copyµ½androidÏîÄ¿µÄresĿ¼Ï¡£
4.ÔÚ/assets/wwwϽ¨Á¢index.htmlÎļþ£¬ÄÚÈÝ¿´ÆðÀ´ÏñÕâÑù£º
<html> <head> <title>PhoneGap</title> <script type="text/javascript" charset="utf-8" src="phonegap-x.x.x.js"></script> </head> <body> <h1>Hello World</h1> </body> </html>
|
5.½«ÒÔÏÂȨÏÞÅäÖõÄxmlÄÚÈÝcopyµ½AndroidManifest.xmlÎļþÖУº
<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> |
6.½«ÒÔÏÂÄÚÈÝÌí¼Óµ½AndroidManifest.xmlÎļþµÄactivity±êÇ©ÖÐ:
android:configChanges="orientation|keyboardHidden
7.AndroidManifest.xml×îºó¿´ÆðÀ´»áÏñÕâÑù£º

8.ÔÚ¸Õ¸Õн¨µÄAndroid ProjectÖÐÕÒµ½libsĿ¼²¢ÔÚphonegap-x.x.x.jarÉϵã»÷ÓÒ¼ü£¬Ñ¡Ôñ
Build Path->Add to Build Path

9.×îºóÔÙÐÞ¸ÄÏÂsrcϵÄJavaÖ÷Îļþ£º
1)Ìí¼Óimport com.phonegap.*;
2)½«Àà¸Ä³É¼Ì³ÐΪDroidGap;
3)ɾµôimport android.app.Activity;
4)°ÑsetContentView()ÕâÐÐÌæ»»Îªsuper.loadUrl("file:///android_asset/www/index.html");
5)×îºó¿´ÆðÀ´¾ÍÏñÕâÑù£º
È»ºó¾Í¿ÉÒÔÊÔ×ÅÔËÐÐһϣ¬³É¹¦µÄ»°»á³öÏÖHello WorldµÄ½çÃæ¡£
Èý¡¢PhoneGap Plugin
PhoneGapµÄ²å¼þ»úÖÆÆäʵ¾ÍÊÇÒ»¸öandroidÀർ³öΪjarÎļþ£¬È»ºóÔÙ±»PhoneGapµÄÏîÄ¿ÒýÓã¬ÔÙͨ¹ýjsÀ´µ÷API£º
1.´´½¨Ò»¸öAndroid Project;
2.´ò¿ªJavaÖ÷Îļþ£¬½«¼Ì³ÐµÄÀà¸ÄΪPlugin;
3.ÒýÈëÒÔÏÂÀࣺ
import com.phonegap.api.Plugin;
import com.phonegap.api.PluginResult; import com.phonegap.api.PluginResult.Status; |
4.ÖØÐ´¸¸ÀàµÄexecute·½·¨£º
public PluginResult execute(String action, JSONArray data, String callbackId) {
PluginResult pr=null; if(action.equals("method1")){ pr=new PluginResult(Status.IO_EXCEPTION,"method1"); }else if(action.equals("method2")){ pr=new PluginResult(Status.OK,"method2"); }
return pr; } |
ÆäÖУ¬µÚÒ»¸ö²ÎÊýaction¿ÉÒÔ×÷Ϊ·ÖÀàµ÷ÓÃʱµÄÀàÐÍ£¬ÎÒÃǾͿÉÒÔÓøòÎÊýÀ´ÊµÏÖ¶à·½·¨¹¦ÄÜ¡£
·µ»ØµÄPluginResultʵÀý¿ÉÒÔͨ¹ý״̬StatusÀàÐ͵ĿØÖÆÀ´ÃèÊöµ±Ç°½á¹ûµÄÖ´ÐÐ״̬¡£
×îºó£¬´úÂë¿´ÆðÀ´¿ÉÄÜÏñÕâÑù£º

5.½«¸ÃÀർ³öΪjar(ÔÚÀàÎļþÉÏÓÒ¼ü->Export->JAR File)
6.»Øµ½Ö®Ç°´´½¨µÄPhoneGapÏîÄ¿ÖУ¬°´ÉÏÃæÌí¼Ójar°üµÄ·½·¨ÔÙ½«¸ÃjarÌí¼Óµ½¹¤³ÌÖС£
7.ÔÚ/res/xml/plugins.xmlÎļþÖÐÌí¼ÓÒÔÏÂÄÚÈÝ£º
<plugin name="PluginTest" value="aralork.moblie.plugin.PluginTest"/> |
nameÊÇÄãÔÚµ÷ÓÃʱҪʹÓõÄÀàÃû£¬valueÊÇÀàÔÚjar°üÖеÄȫ·¾¶
8.×îºóÔÙ´ò¿ªassets/www/index.htmlÎļþ£¬Ð´ÈëÀàËÆÓÚÕâÑùµÄÄÚÈÝ£º
<script type="text/javascript" charset="utf-8" src="phonegap-x.x.x.js"></script>
<script type="text/javascript"> PhoneGap.exec(successCallback, //³É¹¦ºóµÄ»Øµ÷·½·¨ failureCallback, //ʧ°ÜºóµÄ»Øµ÷·½·¨ 'PluginTest',//¸Õ²ÅÅäÖõÄÀàÃû 'method1', //·½·¨Ãû³Æ£¬¾ÍÊÇ֮ǰÌáµ½µÄaction²ÎÊý ["/sdcard"]); //sdcard·¾¶
function successCallback(data){ alert("data:"+data); }
function failureCallback(data){ alert("error:"+data); } </script>
|
ÈËÆ·Ã»ÎÊÌâµÄ»°£¬ÕâÑù¾ÍÄÜrunÆðÀ´ÁË¡£¡£¡£¡£¡£¡£¡£
|