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.1数据库里的数据是如何保存的?数据库到底是怎么存储数据的?比如要把学生信息存储到数据库里,能把学生塞进数据库吗?肯定是把学生的数据信息抽象出来,把一些重要信息以文字或数字的形式保存到数据库中去。…

    2022年9月25日
    1
  • 明天准备离职了,面对照顾自己的领导,要这样说[通俗易懂]

    明天准备离职了,面对照顾自己的领导,要这样说

    2022年2月13日
    57
  • pycharm更改环境_pycharm配置环境变量

    pycharm更改环境_pycharm配置环境变量我们在使用pycharm创建项目的时候我们可以直接选择创建项目在什么环境之上。但是大多时候我们都是直接在别人的工作上进行二次开发,所以这时候就涉及直接打开代码,这就需要我们自行调整Python环境0.准备工作1.你需要有Python环境,我这里使用的是anaconda配置的虚拟环境1.代码提示和动态解析的设置这一步决定你写代码的时候是不是会报错,是不是能给出代码提示。首先我们直接File–》Settings直接熟练的打开设置:之后我们直接按照下图,找到调整环境的位置按照你的实际情况,选

    2022年8月28日
    2
  • 【转载】TCP,IP,HTTP,SOCKET区别和联系

    【转载】TCP,IP,HTTP,SOCKET区别和联系

    2021年11月18日
    62
  • c++ findwindow函数_matlab中怎么查找函数的用法

    c++ findwindow函数_matlab中怎么查找函数的用法FindWindow用来根据类名和窗口名来得到窗口句柄的。但是这个函数不能查找子窗口,也不区分大小写。如果要从一个窗口的子窗口中查找需要使用FindWindowEX。 函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。   函数原型:HWNDFindWindowEx

    2022年8月13日
    5
  • 108是几位数_印度尼西亚总人口数

    108是几位数_印度尼西亚总人口数求给定区间 [X,Y] 中满足下列条件的整数个数:这个数恰好等于 K 个互不相等的 B 的整数次幂之和。例如,设 X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意:17=24+2018=24+2120=24+22输入格式第一行包含两个整数 X 和 Y,接下来两行包含整数 K 和 B。输出格式只包含一个整数,表示满足条件的数的个数。数据范围1≤X≤Y≤231−1,1≤K≤20,2≤B≤10输入样例:15 2022输出样例:3#include<bit

    2022年8月9日
    4

发表回复

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

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