看看新聞網>看引擎>開源産品
0人收藏此文章,
發表于8小時前(2013-09-06 00:39) ,
已有13次閱讀 ,共0個評論
依照我一慣得套路,我會先說一點廢話。
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。
所下面文中我來回的切換叫法,事實上都是一個東西而已。
以下言歸正傳。怎樣在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) {
}, ‘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