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

最新文章

  1. 【原】fiddler修改线上的内容
  2. openSUSE 11 上的配置可以Xmanager远程桌面
  3. 结合Hadoop,简单理解SSH
  4. 安装和使用sass
  5. 解决discuz模板插入jvascript脚本问题(Unexpected token &lt;)
  6. 用NOPI将图片二进制流导出到Excel
  7. easyUI之tree
  8. matlab 函数说明--waitforbuttonpress
  9. 使用sqlmap注入DVWA的SQL Injection菜单
  10. DEV控件的使用(二次封装BaseUI)
  11. 浏览器间bug
  12. (转)Linux下运行python
  13. svn版本控制迁移到git
  14. argparse模块的应用
  15. jmeter(五)几种不同的content-type方式
  16. 20145232 《Java程序设计》课程总结
  17. Linux - 针对用户账号的常用操作
  18. MongoDB 安装教程
  19. git pull出现There is no tracking information for the current branch
  20. WebApi Owin SelfHost OAuth2 - client_credentials

热门文章

  1. java Socket 使用注意
  2. IOS 调用拨打电话Api
  3. java排列
  4. activity之栈管理
  5. tomcat使用说明
  6. python 笔记2--函数
  7. dl dt dd标签
  8. &lt;audio&gt; 标签简介
  9. 利用JPEGImageEncoder进行简单的图片压缩
  10. android ellipsize 属性详解