PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码[通俗易懂]

PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

大家好,又见面了,我是全栈君。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115877.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 机器学习:随机梯度下降法

    机器学习:随机梯度下降法1.梯度下降  1)什么是梯度下降?      因为梯度下降是一种思想,没有严格的定义,所以用一个比喻来解释什么是梯度下降。         简单来说,梯度下降就是从山顶找一条最短的路走到山脚最低的地方。但是因为选择方向的原因,我们找到的的最低点可能不是真正的最低点。如图所示,黑线标注的路线所指的方向并不是真正的地方。    既然是选择一个方向下山,那么这个方向怎么选…

    2025年10月24日
    3
  • @SpringBootTest Canot resolve symbol ‘SpringBootTest‘问题解决

    @SpringBootTest Canot resolve symbol ‘SpringBootTest‘问题解决最近在开发中总是遇到一些奇奇怪怪的问题,都是一些不大不小的事情,有一个开发同事反馈,在使用SpringBoot创建单元测试的时候,无论怎么弄都提示注解不存在,如下:一看提示了@SpringBootTestCanotresolvesymbol’SpringBootTest’,第一反应是不是没有添加依赖包,查看pom.xml,里面已经有添加的包了,<dependency><groupId>org.springframework.boot<.

    2022年6月6日
    47
  • Oracle去重查询实例

    Oracle去重查询实例Oracle去重查询实例今天工作中遇到了一个关于去重的查询,琢磨了半天,终于想明白了,这里简单记录一下。distinct函数说到去重,可能第一反应就是distinct函数,但其实distinct只是针对单一字段的去重有效。例如我想查库中所有的不重复的空号手机数量,如下即可selectcount(distinctn.phonenumber)fromIVR_NO_EXISTn这样查出来一共有295136个空号之后我想查出每天识别出的不重复的空号有多少,开始没想太多,直接写了sel

    2025年6月10日
    5
  • 哈佛大学公开课-幸福课-个人笔记

    哈佛大学公开课-幸福课-个人笔记b站视频链接十一讲:养成良好习惯舒适区拉升区 慢慢的做出改变,一步步来。暴力区人的一生一般都是在舒适区度过的,你要让自己适度的走出然后走进拉升区。自律是有一定量的是有限的,用了可能就没有了,需要时间来恢复。我们不可能拥有很多自律,但同时自律也不是那么重要。老师比喻:1.AB—-榨菜与巧克力,A是巧克力-榨菜,B榨菜-巧克力 最后是A先吃了榨菜,因为A在克制自己不…

    2022年7月18日
    16
  • disk boot failure ,insert sysytem disk and press enter解决方法

    disk boot failure ,insert sysytem disk and press enter解决方法故障分析与处理从现象上看硬盘可能是损坏了,如果在无法启动前的最后一次关机是按照正常程序退出。将硬盘拆下来连接到另外一台机器上,开机启动后进入CMOS设置主菜单,选择“IDE HDD AUTO DETECTION”栏,检测到硬盘参数,能正常进入硬盘。将硬盘装回到原来的机器上,进入CMOS设置后能自动检测到硬盘的参数,恢复了正常启动。关机时按照正常程序退出,而下一次开机时无法用硬盘启动并且无

    2022年7月13日
    17
  • 2012年互联网创业者生存与发展报告

    2012年互联网创业者生存与发展报告创业者属性调查:部分90后接过80后创业接力棒80后仍是主力长江后浪推前浪,虽然当前80后仍是创业主力人群,但90后创业者已经开始显露头角。调查数据显示,2012年68%的创业者是80后,16%是90后,对比2011年调查数据(80后约为77%,90后创业者约为6%)发现,80后创业者数量下降10%,90后数量上升10%。创业动机调查:多数人对行业了解甚少仅凭兴趣创业

    2022年5月22日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号