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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • DVP,LVDS和MIPI「建议收藏」

    DVP,LVDS和MIPI「建议收藏」Mipi接口和LVDS接口区别主要区别:1.LVDS接口只用于传输视频数据,MIPIDSI不仅能够传输视频数据,还能传输控制指令;2.LVDS接口主要是将RGBTTL信号按照SPWG/JEIDA格式转换成LVDS信号进行传输,MIPIDSI接口则按照特定的握手顺序和指令规则传输屏幕控制所需的视频数据和控制数据。液晶屏有RGBTTL、LVDS、MIPIDSI接口…

    2022年5月4日
  • 虚拟机连不上网所有可能我都遇到

    虚拟机连不上网所有可能我都遇到ping不通,主机访问不了虚拟机等等等等虚拟机ping不通VWnet8的ip、ping不通网关、ping不通百度、yum出现tryothermirror。虚拟机ping不通VWnet8的ip、ping不通网关、ping不通百度、yum出现tryothermirror。首先要编辑虚拟机网络为NAT模式,并设定网关、子网掩码。然后进入NAT设置里,将允许任何组织唯一标识符勾选,这个有时候系统默认没钩。然后进入DHCP设计起始ip和结束ip。进入本地网络,修改VWnet8适配器右键属性

    2022年6月26日
  • 物联网操作系统的体系构架(物联网系统怎么开发)

    1.       物联网的主要特点                       i.             连接所谓连接,指的是各种各样的终端设备,都能够通过某种网络技术,连接到一个统一的网络上。任何终端之间都可以相互访问。下一代的基础通信网络,包括未来的5G,通信网络架构重构等,为物联网提供泛连接网络是核心目标。目前也已经有很多厂商推出解决方案,比如Google的thread/wave,华

    2022年4月12日
  • mysql的左右连接_MySQL之左连接与右连接

    mysql的左右连接_MySQL之左连接与右连接左连接:select列1,列2,列NfromtableAleftjointableBontableA.列=tableB.列(正常是一个外键列)[此处表连接成一张大表,完全当成一张普通表看]where,having,groupby…照常写。右连接:select列1,列2,列NfromtableArightjointableBontableA.列=tableB…

    2022年9月13日
  • linux文件复制和移动[通俗易懂]

    linux文件复制和移动[通俗易懂]linux文件复制和移动    文件复制cp(copy)    命令格式:cpsrcdest    cpfile1file2file3(多文件时,最后面是dest,其他都是src)    允许出现的情况是:        1.复制一个文件到一个文件        2.复制多个文件到一个目录    案例:    a.将文件复制到文件夹下,保

    2022年9月28日
  • 超全Python图像处理讲解(多图预警)

    超全Python图像处理讲解(多图预警)文章目录Pillow模块讲解一、Image模块1.1、打开图片和显示图片1.2、创建一个简单的图像1.3、图像混合(1)透明度混合(2)遮罩混合1.4、图像缩放(1)按像素缩放(2)按尺寸缩放1.5、图像的剪切与粘贴(1)图像粘贴(2)裁剪图像1.4、图像旋转和格式转换(1)图像旋转(2)格式转换1.5、分离和合并(1)分离(2)合并二、ImageFilter2.1、高斯模糊2.2、其它滤镜三、…

    2022年6月20日

发表回复

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

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