`

写一个phonegap插件

阅读更多

我的博客网站: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

0
0
分享到:
评论

相关推荐

    phonegap开发插件合集

    这个"phonegap开发插件合集"是一个包含了多种PhoneGap插件的资源包,覆盖了Android和iOS等多个平台,为开发者提供更丰富的功能扩展。 首先,我们来看看"短信收发插件"。在移动应用中,发送和接收短信是一项常见的...

    最新phonegap插件集合

    总之,"最新phonegap插件集合"是一个宝贵的资源,它包含了各种用于增强PhoneGap应用功能的工具。通过合理选择和使用这些插件,开发者可以创建出功能丰富、跨平台的移动应用,而无需深入学习各个操作系统底层的原生...

    PhoneGap常用插件

    PhoneGap的吸引力在于它提供了一个统一的开发环境,使得开发者可以使用他们熟悉的Web技术来开发适用于iOS、Android、Windows Phone等多个平台的应用。 在"PhoneGap常用插件"这个主题中,我们将探讨PhoneGap生态系统...

    phonegap在线更新插件(android)

    本插件专注于PhoneGap在Android平台上的在线更新功能,旨在解决一个特定的问题:即在Android 7.0及以上版本中,通过下载安装APK更新时可能出现的应用闪退现象。 在Android系统中,特别是从7.0版开始,谷歌引入了更...

    使用phonegap插件启动另一个Android Activity

    在某些情况下,我们需要利用 PhoneGap 的插件功能来实现与 Android 原生代码的交互,例如启动一个新的 Activity。在本教程中,我们将深入探讨如何使用 PhoneGap 插件启动另一个 Android Activity。 首先,确保你...

    PhoneGap iOS 自定义插件

    PhoneGap iOS 自定义插件是移动应用开发中的一个重要概念,它允许开发者利用JavaScript与原生iOS平台进行交互,实现更高效、更丰富的功能。PhoneGap是一个开源框架,它基于Apache Cordova,允许开发者使用HTML、CSS...

    支付宝快捷支付phonegap插件demo

    支付宝快捷支付PhoneGap插件Demo是一个专为移动应用开发者设计的解决方案,旨在简化在基于PhoneGap框架的应用中集成支付宝支付的过程。PhoneGap是一种流行的开源框架,它允许开发者使用HTML、CSS和JavaScript来构建...

    phonegap插件包Android版本

    总结来说,"phonegap插件包Android版本"是一个针对Android平台的PhoneGap项目,包含用于扩展PhoneGap功能的特定插件。通过理解和掌握上述知识点,开发者能够更好地利用PhoneGap构建功能丰富的Android应用程序。

    phonegap打开文档插件

    PhoneGap打开文档插件是移动应用开发中的一个重要组件,它允许开发者在PhoneGap应用程序中方便地查看和打开各种类型的文档。PhoneGap是一个基于HTML、CSS和JavaScript的框架,用于构建跨平台的原生移动应用。它利用...

    PhoneGap Camera插件调用 Demo下载

    Camera 插件是 PhoneGap 的一个重要组成部分,它为应用提供了访问设备摄像头和图库的功能。在这个“PhoneGap Camera插件调用 Demo”中,我们将探讨如何实现拍照和从图库选择图片的功能。 首先,我们需要理解...

    PhoneGap插件扩展

    一个PhoneGap插件通常由两部分组成:JavaScript接口和Native代码。JavaScript部分负责在Web层与用户交互,而Native部分则实现了实际的功能并与设备硬件或系统服务通信。两者之间通过特定的API进行通信,通常是通过`...

    Phonegap在安卓平台上的插件开发

    一个PhoneGap插件通常包含两部分:前端JavaScript和后端Java代码。JavaScript部分提供了与PhoneGap JavaScript API接口兼容的方法,供HTML页面调用;Java部分则实现了实际的设备功能,比如在本例中的MD5加密。 1. *...

    phonegap2.9.0插件开发

    这个插件通常用于演示如何建立一个基本的PhoneGap插件,以及如何在JavaScript中调用它。它可能包含以下部分: - 原生代码:简单的操作,如显示一个对话框或日志输出,以证明JavaScript和原生代码之间的通信。 - ...

    android PhoneGap 自定义插件

    在Android中,创建一个PhoneGap插件通常涉及以下步骤: 1. 创建Java类:你需要创建一个继承自`org.apache.cordova.CordovaPlugin`的Java类,这是你的插件核心。在这个类中,你需要重写`execute()`方法,这个方法会...

    自定义plugin插件实现phonegap与Android交互

    通过分析和学习这些代码,你可以更好地理解如何在实际项目中自定义PhoneGap插件,以实现与Android平台的深度交互。 总的来说,理解并掌握PhoneGap的Plugin机制是扩展PhoneGap应用功能的关键,它让你能够充分利用...

    二维玛扫描phonegap插件

    二维玛扫描PhoneGap插件是移动应用开发中的一个重要工具,尤其在智能手机和平板电脑上,它使得用户能够通过摄像头快速读取和解析二维码(Quick Response Code)或条形码(Barcodes)。PhoneGap是一个跨平台的开发...

    phonegap plugins (插件集)

    PhoneGap是一个开源框架,它允许开发者使用Web技术来构建可在多个移动操作系统上运行的应用,如Android、iOS、iPhone、Windows Phone和BlackBerry。这些平台的兼容性是PhoneGap的一大亮点,它简化了多平台开发的复杂...

    我的第一个PhoneGap应用

    "我的第一个PhoneGap应用"很可能是对初学者的一个教程或示例项目,旨在帮助他们理解如何使用PhoneGap开发移动应用。 PhoneGap的优点在于其跨平台性,开发者可以编写一次代码,然后在多个操作系统上运行,包括iOS、...

    phonegap调用android插件实现GPS定位

    在Android中,GPS定位涉及到Android的Location API,因此我们需要创建一个自定义的PhoneGap插件来调用这些API。 二、Android Location API Android的Location API提供了获取设备位置的能力,包括GPS(全球定位系统...

    phonegap 微信共享插件

    这个"cordova-plugin-wechat-master"压缩包文件包含了一个PhoneGap插件,用于实现与微信的集成,特别是其共享功能。在PhoneGap项目中安装此插件后,开发者可以方便地在他们的应用中添加分享到微信的功能,让用户能够...

Global site tag (gtag.js) - Google Analytics