Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> phonegap添加插件(android)

phonegap添加插件(android)

編輯:關於Android編程

  qt也開始支持android與ios,遺憾的是qwebkit不能在android於ios上使用,希望5.3能加入。為了能夠實現跨移動平台,選擇phonegap進行開發。phonegap的安裝大家可以參照官網www.phonegap.com。目前最新版本為2.91,本人用的是2.90版。在這裡簡單簡述下如何在phonegap下添加插件,使用js調用本地函數。     詳細步驟可以參考官網:   http://docs.phonegap.com/zh/3.4.0/guide_platforms_android_plugin.md.html#Android%20%E5%A4%96%E6%8E%9B%E7%A8%8B%E5%BC%8F     如果你像我一樣使用2.90的話官網的文檔(3.4.0)是無法使用的,問題出在JS調用說明部分(其余部分可以參考官網),官方的文檔例子為   cordova.exec(function(winParam) {},                  function(error) {},                  "service",                  "action",                  ["firstArgument", "secondArgument", 42, false]);   如果按照官方的做法將會報錯TypeError: Result of expression 'cordova.exec' [undefined] is not a function 找不到這個方法,在網上搜了一圈都是調用cordova.exec()。沒辦法,只能是去看下源碼,既然是cordova,就找cordova.js這個文件,果然在這個文件裡cordova這個類沒有exec方法。不過在程序裡有一句   var exec = require('cordova/exec');   而cordova類裡又有require。所以硬著頭皮在要調用的js文件下使用下面的方式調用。結果這樣代碼是可以正常運行的,不過正確的方式是不是這樣,這就不確定了,官方在文檔這方面的更新還是不夠快啊。   var exec = cordova.require("cordova/exec"); exec(callbackok,callbackerr,"AndroidAPIforJS", "test1", ["test"]);   接下來就說下我具體的實現步驟。     第一步實現android插件程序   復制代碼 public class AndroidAPIforJS extends CordovaPlugin {       @Override     public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException      {         if (action.equals("test"))         {             Log.e("plugintest","ok");             callbackContext.success();             return true;         }         else         {             Log.e("plugintest","error");             callbackContext.error(0);             return false;         }     } } 復制代碼   第二步在config.xml中添加   <feature name="AndroidAPIforJS">    <param name="android-package" value="com.myexample.phonegap.AndroidAPIforJS"/>  </feature>   第三部編寫js代碼   復制代碼 function callbackok() {   alert("ok!");     } function callbackerr() {     alert("error!");     } var exec = cordova.require("cordova/exec"); exec(callbackok,callbackerr,"AndroidAPIforJS", "test", ["test"]); 復制代碼    這裡簡單說明下exec的參數     callbackok:當調用插件成功時,且java程序執行callbackContext.success();被觸發。     callbackerr:當調用插件失敗時,且java程序執行callbackContext.error(0);被觸發。     "AndroidAPIforJS":為插件類名。     "test":用於區分插件類調用方法。     ["test"]:用於傳參。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved