phonegap添加外掛程式(android)

來源:互聯網
上載者:User

  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"]:用於傳參。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.