我的博客网站:http://www.zeromike.net
本文地址:http://www.zeromike.net/?p=58
在使用phonegap或者说叫cordova进行hybrid开发的时候,肯定需要和原生代码进行交互,因此需要开发一个插件来完成两者之间的交互,下面我给出示意性代码。将建好的cordova项目导入eclipse中,我下一篇会写如何建立cordova项目。
插件开发链接:http://docs.phonegap.com/en/3.5.0/guide_hybrid_plugins_index.md.html#Plugin%20Development%20Guide
Warning:中文文档千万别看,还是繁体,编程用词和大陆相差比较大,貌似是台湾翻译的吧,看了变SB了。。。
需求:在客户端点击一个按钮,将一个字符串信息传到原生代码并通过回调方法显示出来。
1.在src目录中建立插件类
package com.mike; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; import org.json.JSONArray; import org.json.JSONException; public class MyPlugin extends CordovaPlugin { @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if (action.equals("echo")) { String message = args.getString(0); this.echo(message, callbackContext); return true; } return false; } private void echo(String message, CallbackContext callbackContext) { if (message != null && message.length() > 0) { callbackContext.success(message); } else { callbackContext.error("Expected one non-empty string argument."); } } }
2.在res/confg.xml文件中加入
<feature name="App"> <param name="android-package" value="org.apache.cordova.App" /> </feature> <!-- 设备 --> <feature name="Device" > <param name="android-package" value="org.apache.cordova.device.Device" /> </feature> <!-- 添加自定义插件 --> <feature name="MyPlugin" > <param name="android-package" value="com.mike.MyPlugin"/> </feature>
3.在www/js/index.js文件中加入
var MyPlugin = function() { }; MyPlugin.prototype.service ='MyPlugin'; MyPlugin.prototype.exec = cordova.require('cordova/exec'); MyPlugin.prototype.sayHello = function(params,success) { this.exec(success, function(err) {success('Nothing to echo.');}, this.service, "echo", [params]); };
exec的执行方法参数介绍:
第一个参数 success:方法执行成功时调用该方法
第二个参数 方法执行失败时调用该函数,可自定义该方法
第三个参数 插件名称,保证和config.xml中的插件名称一致就行(feature的name)
第四个参数 插件类中的调用的方法名称
第五个参数 [target, content]:一个数据,插件类中的参数JSONObject data
4.在www/index.html代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="format-detection" content="telephone=no" /> <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 --> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <link rel="stylesheet" type="text/css" href="css/index.css" /> <meta name="msapplication-tap-highlight" content="no" /> <title>Hello World</title> </head> <body> <div class="app"> <h1>Apache CordovaHelelloo</h1> <div class="app"> <h1>Apache Cordova</h1> <input type="button" value="test" onclick="test();" /> </div> <script type="text/javascript" src="cordova.js"></script> <script type="text/javascript" src="js/index.js"></script> <script type="text/javascript"> var plugin = new MyPlugin(); function test(){ plugin.sayHello("zeromike", function(echoValue) { alert("hello,"+echoValue); }); } </script> </body> </html>
点击后结果:hello,zeromike
原文链接:http://www.zeromike.net/?p=58
原文作者:zeromike
相关推荐
这个"phonegap开发插件合集"是一个包含了多种PhoneGap插件的资源包,覆盖了Android和iOS等多个平台,为开发者提供更丰富的功能扩展。 首先,我们来看看"短信收发插件"。在移动应用中,发送和接收短信是一项常见的...
总之,"最新phonegap插件集合"是一个宝贵的资源,它包含了各种用于增强PhoneGap应用功能的工具。通过合理选择和使用这些插件,开发者可以创建出功能丰富、跨平台的移动应用,而无需深入学习各个操作系统底层的原生...
PhoneGap的吸引力在于它提供了一个统一的开发环境,使得开发者可以使用他们熟悉的Web技术来开发适用于iOS、Android、Windows Phone等多个平台的应用。 在"PhoneGap常用插件"这个主题中,我们将探讨PhoneGap生态系统...
本插件专注于PhoneGap在Android平台上的在线更新功能,旨在解决一个特定的问题:即在Android 7.0及以上版本中,通过下载安装APK更新时可能出现的应用闪退现象。 在Android系统中,特别是从7.0版开始,谷歌引入了更...
在某些情况下,我们需要利用 PhoneGap 的插件功能来实现与 Android 原生代码的交互,例如启动一个新的 Activity。在本教程中,我们将深入探讨如何使用 PhoneGap 插件启动另一个 Android Activity。 首先,确保你...
PhoneGap iOS 自定义插件是移动应用开发中的一个重要概念,它允许开发者利用JavaScript与原生iOS平台进行交互,实现更高效、更丰富的功能。PhoneGap是一个开源框架,它基于Apache Cordova,允许开发者使用HTML、CSS...
支付宝快捷支付PhoneGap插件Demo是一个专为移动应用开发者设计的解决方案,旨在简化在基于PhoneGap框架的应用中集成支付宝支付的过程。PhoneGap是一种流行的开源框架,它允许开发者使用HTML、CSS和JavaScript来构建...
总结来说,"phonegap插件包Android版本"是一个针对Android平台的PhoneGap项目,包含用于扩展PhoneGap功能的特定插件。通过理解和掌握上述知识点,开发者能够更好地利用PhoneGap构建功能丰富的Android应用程序。
PhoneGap打开文档插件是移动应用开发中的一个重要组件,它允许开发者在PhoneGap应用程序中方便地查看和打开各种类型的文档。PhoneGap是一个基于HTML、CSS和JavaScript的框架,用于构建跨平台的原生移动应用。它利用...
Camera 插件是 PhoneGap 的一个重要组成部分,它为应用提供了访问设备摄像头和图库的功能。在这个“PhoneGap Camera插件调用 Demo”中,我们将探讨如何实现拍照和从图库选择图片的功能。 首先,我们需要理解...
一个PhoneGap插件通常由两部分组成:JavaScript接口和Native代码。JavaScript部分负责在Web层与用户交互,而Native部分则实现了实际的功能并与设备硬件或系统服务通信。两者之间通过特定的API进行通信,通常是通过`...
一个PhoneGap插件通常包含两部分:前端JavaScript和后端Java代码。JavaScript部分提供了与PhoneGap JavaScript API接口兼容的方法,供HTML页面调用;Java部分则实现了实际的设备功能,比如在本例中的MD5加密。 1. *...
这个插件通常用于演示如何建立一个基本的PhoneGap插件,以及如何在JavaScript中调用它。它可能包含以下部分: - 原生代码:简单的操作,如显示一个对话框或日志输出,以证明JavaScript和原生代码之间的通信。 - ...
在Android中,创建一个PhoneGap插件通常涉及以下步骤: 1. 创建Java类:你需要创建一个继承自`org.apache.cordova.CordovaPlugin`的Java类,这是你的插件核心。在这个类中,你需要重写`execute()`方法,这个方法会...
通过分析和学习这些代码,你可以更好地理解如何在实际项目中自定义PhoneGap插件,以实现与Android平台的深度交互。 总的来说,理解并掌握PhoneGap的Plugin机制是扩展PhoneGap应用功能的关键,它让你能够充分利用...
二维玛扫描PhoneGap插件是移动应用开发中的一个重要工具,尤其在智能手机和平板电脑上,它使得用户能够通过摄像头快速读取和解析二维码(Quick Response Code)或条形码(Barcodes)。PhoneGap是一个跨平台的开发...
PhoneGap是一个开源框架,它允许开发者使用Web技术来构建可在多个移动操作系统上运行的应用,如Android、iOS、iPhone、Windows Phone和BlackBerry。这些平台的兼容性是PhoneGap的一大亮点,它简化了多平台开发的复杂...
"我的第一个PhoneGap应用"很可能是对初学者的一个教程或示例项目,旨在帮助他们理解如何使用PhoneGap开发移动应用。 PhoneGap的优点在于其跨平台性,开发者可以编写一次代码,然后在多个操作系统上运行,包括iOS、...
在Android中,GPS定位涉及到Android的Location API,因此我们需要创建一个自定义的PhoneGap插件来调用这些API。 二、Android Location API Android的Location API提供了获取设备位置的能力,包括GPS(全球定位系统...
这个"cordova-plugin-wechat-master"压缩包文件包含了一个PhoneGap插件,用于实现与微信的集成,特别是其共享功能。在PhoneGap项目中安装此插件后,开发者可以方便地在他们的应用中添加分享到微信的功能,让用户能够...