PhoneGap中文网

 找回密码
 立即注册
PhoneGap中文网 移动互联网 查看内容

Html5中JS如何通过phonegap调用Android原生代码

2013-9-27 12:59| 发布者: admin| 查看: 12782| 评论: 4

摘要: 如何在PhoneGap或者Cordova框架下实现JS调用Android原生代码? PhoneGap是一款HTML5平台, 通过它,开发商可以使用HTML、CSS及JavaScript来开发本地移动应用程序。因此,目前开发商可以只编写一次应用程序,然后在6个 ...
在了解 Html5中JS如何通过phonegap调用Android原生代码之前,我们先了解一下 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中文网—Html5中JS如何通过phonegap调用Android原生代码


  下面言归正传,如何在PhoneGap或者Cordova框架下实现JS调用Android原生代码?(这里就不再啰嗦如何在Android程序中集成PhoneGap了

  1.在你的html5中config.js定义你的Plugin的名称和方法。名为MyPlugin,有两个插件:一个为自动更新(Update),一个为密码锁定(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.

  
   


  3.自定义你的Plugin类和处理方法.(这里只贴出了自动更新插件的代码,很简单,只是作了一个跳转)

  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原生的方法进行密码锁定有关操作
        MyPlugin.PassLock(function(){},function(){},’这里是一个参数,我这里不涉及参数的使用,所随便写‘);
    },

  5.测试,当你点击你的某个按钮或者链接执行你的update:function这个JS,然后在JS里调用了MyPlugin下的Update插件,这 个插件在config.js里被定义,在plugin.xml中被注册,插件具体执行的地方时UpdatePlugin里的execute()方法。执行 完这个方法后,你就已经调用了Android的原生代码咯,当然我这里是设置成了跳转到另外一个Activity.


1

头晕

难过

扯淡

不解

搞笑
12

支持
2

超赞
1

欠扁

刚表态过的朋友 (16 人)

相关阅读

发表评论

最新评论

引用 gdutzyz 2014-8-13 09:31
赞一个!
引用 dang050 2013-12-18 17:33
谢谢,学习了
引用 h343554668 2013-12-11 15:16
可以把这片文章copy走么?我会注明出处并附上原文链接的。。
引用 h343554668 2013-12-11 15:15
啊啊啊

查看全部评论(4)

关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2022-8-15 21:30 , Processed in 0.142022 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部