`
gteam.yu
  • 浏览: 27699 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Phone Gap开发二:开发一个Phone Gap插件

阅读更多
   快过年回家了,为了不阉割phonegap开发的介绍,在今天完成phonegap的最后一个介绍,在上一篇中提到过的如何开发phonegap的插件。
   目前PhoneGap虽然提供了很多的API,但是我们也很容易发现,他有很多地方不能满足我们的需求,比如发短信。我也将介绍如何开发一个针对PhoneGap发短信的Plugin。(Android 版本)。
1、创建一个Android工程,创建之后的目录结构如图:


2、把PhoneGap的android版jar包、javascript和xml文件夹加入工程。(参照上一篇中的做法)目录结构:


3、新增一个类MessagePlugin
这个类就是负责发送短信功能的具体类,可以调用发送短信的android API,当然如果是其他功能,则调用相应的API,但是当使用这个API时记得申请权限。
具体代码:
package com.phonegap.kiddyu.plugin;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.telephony.SmsManager;

import com.phonegap.api.Plugin;
import com.phonegap.api.PluginResult;

public class MessagePlugin extends Plugin {
	
	private static final String SEND = "send";
	
	@Override
	public PluginResult execute(String action, JSONArray data, String callbackId) {
		PluginResult result;
		if (SEND.equals(action)) {
			try {
				JSONObject jsonObj = new JSONObject();
				String target = data.getString(0);
				String content = data.getString(1);
				SmsManager sms = SmsManager.getDefault();
				sms.sendTextMessage(target, null, content, null, null);
				jsonObj.put("target", target);
				jsonObj.put("content", content);
				result = new PluginResult(PluginResult.Status.OK, jsonObj);
			} catch (JSONException ex) {
				result = new PluginResult(PluginResult.Status.JSON_EXCEPTION);
			}catch(IllegalArgumentException ex){
				result = new PluginResult(PluginResult.Status.ERROR);
			}
		} else {
			result = new PluginResult(PluginResult.Status.INVALID_ACTION);
		}

		return result;
	}

}


4、为phonegap增加一个javascript的API
在工程目录www/js下面增加一个javascript文件:phonegapPlugin.js,然后加入代码:
var Message = function(){};

Message.prototype = {
		send: function(success, error, target, content){
			PhoneGap.exec(success, error, "MessagePlugin", "send", [target, content]);
		}
};

PhoneGap.addConstructor(function() {
	PhoneGap.addPlugin("message", new Message());
});


关键的方法是PhoneGap.exec(success, error, "MessagePlugin", "send", [target, content]);
做一下简单的介绍:
success:方法执行成功时调用该函数;
error:方法执行失败时调用该函数;
"MessagePlugin":类名,最好与前面创建的Java类一个样;
"send":插件类中的参数String action;
[target, content]:一个数据,插件类中的参数JSONObject data;

PhoneGap.addPlugin("message", new Message());中的"Message"是你调用send方法时的实例名称。(不知道这样叫是否准确)


5、将自己的插件加入到PhoneGap的配置中
打开目录中res/xml/plugins.xml文件,在最后面加上
<plugin name="MessagePlugin" value="com.phonegap.kiddyu.plugin.MessagePlugin"/>
注意name要和你的插件类名一致! value是类的包名.类名。

插件到这里就算完成了,让我们测试一下到底能不能工作吧。
加入一个简单的html页面(上一篇已经介绍怎么开发,这里不做重复介绍),代码参照下面:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" charset="utf-8" src="../js/jquery_1_6_4.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/phonegap-1.2.0.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/phonegapPlugin.js"></script>
<script type="text/javascript">
	$(function(){
		var onSend = function(){
			
			var success = function(data){
				alert("tel : " + data.target + ', and content : ' + data.content);
			};
			
			var error = function(e){
				alert(e);
			};
			
			var tel = $('#tel').val();
			var content = $('#content').val();
			window.plugins.message.send(success, error, tel, content);
		};
		
		$('#send').bind('click', onSend);
	});
</script>
</head>
<body>
	<div id="messageDiv">
		<input type="tel" id="tel" value="5556" />
		<textarea rows="20" cols="25" id="content"></textarea>
		<button type="button" id="send">Send Me</button>
	</div>
</body>
</html>


注意在页面中加入你自己的phonegapPlugin.js,而且顺序必须在phonegap.js之后。
其他的都参照上一篇中,修改自己的Activity就开始测试吧!一下是测试截图:



  • 大小: 7.5 KB
  • 大小: 9.2 KB
  • 大小: 18.2 KB
0
0
分享到:
评论

相关推荐

    phone gap 移动开发框架

    8. **社区支持和扩展插件**:PhoneGap有一个庞大的开发者社区,提供各种教程、示例代码和第三方插件,以增强PhoneGap的基础功能,如推送通知、社交网络整合等。 总结来说,PhoneGap为开发者提供了一个高效且灵活的...

    Android Phone Gap入门程序(Phone Gap HelloWorld)

    总之,"Android Phone Gap入门程序(Phone Gap HelloWorld)"是一个很好的起点,它让开发者快速入门PhoneGap,了解如何将Web技术应用于Android应用开发。通过这个项目,你可以逐步熟悉PhoneGap的开发流程,为创建更...

    PhoneGap开发移动应用(Android)

    总结来说,PhoneGap/Cordova是一个非常有用的框架,它简化了移动应用开发流程,使开发者能够用熟悉的Web技术开发出跨平台的应用。然而,随着移动设备市场的不断发展和技术的不断更新,开发者需要不断学习和适应新的...

    pgb-materialize-hello:Hello World 由 Phone Gap Build 构建,由 Materialize CSS 提供支持

    总的来说,这个"pgb-materialize-hello"项目是一个很好的起点,对于初学者来说,它可以展示如何结合Phone Gap Build的跨平台能力与Materialize CSS的界面设计优势来快速构建一个基本的移动应用。通过学习这个项目,...

    phone Gap深入浅出 图灵书

    phoneGap图灵书,都知道这类的书比较好,虽然有点老,但对于学习重要的是理解,理解之后再去追求技术的更新迭代.

    该工程是android 项目,使用phone gap技术来兼容所有手机.zip

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,...

    CallJavaFunctionFromJavascriptPlugin:一个简单的 Phone-Gap android 插件,演示如何从 JavaScript 调用 Java 函数来执行一些本机代码

    CallJavaFunctionFromJavascriptPlugin 一个简单的 Phone-Gap Android 插件,演示了如何从 JavaScript 调用 Java 函数来执行一些本机代码。 该插件为您提供了一个CallJavaFunctionFromJavascriptPlugin对象,该对象...

    使用Eclipse ADT构建PhoneGap入门程序

    下面我们将详细探讨如何使用Eclipse ADT构建一个PhoneGap入门程序。 **1. 安装和配置环境** 首先,你需要在计算机上安装以下软件: - Java Development Kit (JDK):Java编程的基础,Eclipse ADT需要JDK才能运行。 -...

    phonegap_smspi:SMSPI Phone Gap应用程序

    PhoneGap SMSPI应用程序是一个基于JavaScript开发的移动应用项目,它利用了PhoneGap框架来实现跨平台的短信功能。PhoneGap是一种流行的开源框架,允许开发者使用HTML、CSS和JavaScript来构建原生的移动应用,覆盖iOS...

    手机Web应用开发平台PhoneGap.zip

    因此,目前开发商可以只 编写一次应用程序,然后在7个主要的移动平台和应用程序商店(app store)里进行发布,这些移动平台和应用程序商店包括:iOS、Android、BlackBerry、webOS、bada、Winodws Phone以及Symbian。...

    PhoneGap W3C 开发手册

    开发者可以找到已经开发好的插件来实现一些特定的功能,也可以自己开发插件来满足特定的开发需求。 如今,PhoneGap与Adobe已经没有直接的关系,它是由Apache软件基金会管理的一个独立的开源项目。它仍然被广泛使用...

    PhoneGap入门ppt

    PhoneGap是一个自由开放源码的开发工具和框架,允许利用HTML + JavaScript + CSS的强大功能在多个手机平台上开发程序,开发出来的程序经过在各自的平台上编译形成独立的安装程序。使程序看起来和native的程序一样。

    phonegap_test1

    - PhoneGap Build:一个在线服务,允许开发者上传源代码并生成跨平台的应用包。 4. **ada申请文档** 压缩包中的三个 `.docx` 文件(ada申请v1.1包过版.docx、ada申请.docx、ada申请v1.0.docx)可能与PhoneGap应用...

    Collaborate:员工目录建立在 Angular + Ionic UI 框架 + Phone Gap 上

    协作员工目录 建立在 Ionic 和 Angular 之上 这是一个以分层方式维护员工目录的简单应用程序,以便用户可以跟踪直接老板和下线员工的详细信息。 贡献是 UI 框架 - Ionic + Angular、Phone Gap、Android SDK Manager

    MindAndPlay:Mind and Play是一个使用Phone Gap的简单测验应用程序,该应用程序是由MarienschuleSarbrücken的Niklas Schmiedel,Felix Herterich和Kai Karren与萨尔大学的MPI合作创建的一个学校项目

    MindAndPlay是一个基于PhoneGap开发的简单测验应用程序,它由Marienschule Sarbrücken的Niklas Schmiedel、Felix Herterich、Kai Karren与萨尔大学的MPI(Max Planck Institute)合作创建,作为一个学校项目。...

    testApp1:使用Phone Gap将Angular Web App测试到Android App

    PhoneGap是由Adobe开发的一个开源框架,基于Apache Cordova。它提供了访问设备API的能力,如摄像头、GPS、加速度计等,使得Web开发者可以构建具有原生功能的移动应用。PhoneGap通过包装Web应用并利用WebView(在...

    PhoneGAP实例源码

    PhoneGap是一种跨平台的移动应用开发框架,它允许...这对于希望入门移动开发或者提升PhoneGap技能的开发者来说是一份宝贵的学习资源。每个实例都可以独立分析和调试,以便更深入地理解和掌握PhoneGap开发的核心技巧。

Global site tag (gtag.js) - Google Analytics