PhoneGap或者Cordova框架下實現Html5中JS調用Android原生代碼

按照我一慣得套路,我會先說一點廢話。PhoneGap和Cordova什麼關係?爲什麼有的地方叫Cordova而有的地方叫PhoneGap ?PhoneGap是一款HTML5平臺,經過它,開發商能夠使用HTML、CSS及JavaScript來開發本地移動應用程序。所以,目前開發商能夠只編寫一次應用程序,而後在6個主要的移動平臺和應用程序商店(app store)裏進行發佈,這些移動平臺和應用程序商店包括:iOS、Android、BlackBerry、webOS、bada以及Symbian。Apache Cordova是PhoneGap貢獻給Apache後的開源項目,是從PhoneGap中抽出的核心代碼,是驅動PhoneGap的核心引擎。大概意思也就是說:Cordova是由PhoneGap發展而來的,如今的Cordova就是當年的PhoneGap。因此下文中我來回的切換叫法,其實都是一個東西而已。html

          下面言歸正傳,如何在PhoneGap或者Cordova框架下實現JS調用Android原生代碼?(這裏就再也不囉嗦如何在Android程序中集成PhoneGap了)html5

     1.在你的html5中config.js定義你的Plugin的名稱和方法。名爲MyPlugin,有兩個插件:一個爲自動更新(Update),一個爲密碼鎖定(PassLock)java

     

 
var MyPlugin = {
             UpDate: function (success, fail, url) {
             
return  PhoneGap.exec(function (args) {
             success(args);
           }, function (args) {
            fail(args);
          }, ‘UpDate’, ‘Update’, [url]);
       },      
     PassLock: function (success, fail, url){
        return  PhoneGap.exec(function (args) {
            success(args);
        }, function (args) {
            fail(args);
        }, ‘PassLock’, ‘PassLock’, [url]);
     
     }
};



  2.在xml文件夾下的plugin裏註冊你的Plugin.android

   

<plugin name=」UpDate」 value=」com.gapsh.plugin.UpdatePlugin」/>   
<plugin name=」PassLock」 value=」com.gapsh.plugin.PassLockPlugin」/>



  3.自定義你的Plugin類和處理方法.(這裏只貼出了自動更新插件的代碼,很簡單,只是做了一個跳轉)web

 

 
public class UpdatePlugin extends Plugin {
      @Override
      
public PluginResult execute(String arg0, JSONArray arg1, String arg2) {
        /*
       * 跳轉到UpdateActivity
       */
    
      Intent intent = new Intent(ctx.getContext(),UpdateActivity.class);
          ctx.startActivity(intent);  
          String result = 「跳轉至UpdateActivity」; 
          PluginResult pluginResult = new PluginResult(Status.OK, result);
          
return pluginResult;
       
}
    }


  4.在你的JS中調用你的插件。app

    

//自動更新
    upDate: function () {
        //調用android原生的方法檢查並更新
       MyPlugin.UpDate(function(){},function(){},’這裏是一個參數,我這裏不涉及參數的使用,因此隨便寫’);
    },
    passLock: function(){
      //調用android原生的方法進行密碼鎖定有關操做
        MyPlugin.PassLock(function(){},function(){},’
這裏是一個參數,我這裏不涉及參數的使用,所隨便寫
‘);
    },



  5.測試,當你點擊你的某個按鈕或者連接執行你的update:function這個JS,而後在JS裏調用了MyPlugin下的Update插件,這個插件在config.js裏被定義,在plugin.xml中被註冊,插件具體執行的地方時UpdatePlugin裏的execute()方法。執行完這個方法後,你就已經調用了Android的原生代碼咯,固然我這裏是設置成了跳轉到另一個Activity.
框架

   所需工具打包下載:http://pan.baidu.com/share/link?shareid=1636341858&uk=2937351404ide

相關文章
相關標籤/搜索