標籤:
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原生代碼