PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
2016-02-27 13:53
1246 查看
PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
看看新闻网>看引擎>开源产品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) {
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
相关文章推荐
- Android-----declare-styleable
- declare-styleable中format详解
- Android之ListView
- Android Studio快捷键【Android学习入门】
- android popwindow和dialog的取舍
- 第3章 Android Dalvik虚拟机 第三节(下)
- 2016/2/26Android实习笔记(Android签名和aapt)
- Ubuntu下更新android sdk(sdk manager没有Tools选项)
- Android 使用Intent和Bundle传递数据及如何传递enum
- android简单的自定义动画
- Android--自定义视图控件(一)(Android Studio)
- 解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题
- Android 日期格式化
- Android Studio如何快速生成get,set,tostring,构造函数
- Android上通知栏NotificationManager设置
- android 权限
- Android的RecyclerView的初体验
- android Listview,gridview局部刷新,部分刷新
- Android Service的生命周期
- Android动态设定GridView的高度,固定column,实现高度自适应