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

來源:互聯網
上載者:User

標籤:

PhoneGap或者Cordova架構下實現Html5中JS調用Android原生代碼看看新聞網>看引擎>開源產品
0人收藏此文章,


發表於8小時前(2013-09-06 00:39) ,
已有13次閱讀 ,共0個評論

           依照我一慣得套路,我會先說一點廢話。

PhoneGap和Cordova什麼關係?為什麼有的地方叫Cordova而有的地方叫PhoneGap ?PhoneGap是一款HTML5平台。通過它,開發商能夠使用HTML、CSS及JavaScript來開發本地行動裝置 App程式。因此,眼下開發商能夠僅僅編寫一次應用程式,然後在6個基本的移動平台和應用程式商店(app store)裡進行公布,這些移動平台和應用程式商店包含:iOS、Android、BlackBerry、webOS、bada以及Symbian。Apache Cordova是PhoneGap貢獻給Apache後的開源項目。是從PhoneGap中抽出的核心代碼。是驅動PhoneGap的核心引擎。大概意思也就是說:Cordova是由PhoneGap發展而來的,如今的Cordova就是當年的PhoneGap。

所下面文中我來回的切換叫法,事實上都是一個東西而已。

          以下言歸正傳。怎樣在PhoneGap或者Cordova架構下實現JS調用Android原生代碼?(這裡就不再囉嗦怎樣在Android程式中整合PhoneGap了)

     1.在你的html5中config.js定義你的Plugin的名稱和方法。

名為MyPlugin,有兩個外掛程式:一個為自己主動更新(Update)。一個為password鎖定(PassLock)

       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.

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


  3.自己定義你的Plugin類和處理方法.(這裡僅僅貼出了自己主動更新外掛程式的代碼,非常easy。僅僅是作了一個跳轉)

  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中調用你的外掛程式。

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

  5.測試,當你點擊你的某個button或者連結運行你的update:function這個JS。然後在JS裡調用了MyPlugin下的Update外掛程式,這個外掛程式在config.js裡被定義。在plugin.xml中被注冊,外掛程式詳細啟動並執行地方時UpdatePlugin裡的execute()方法。運行完這種方法後,你就已經調用了Android的原生代碼咯。當然我這裡是設定成了跳轉到另外一個Activity.

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.