快过年回家了,为了不阉割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
分享到:
相关推荐
phonegap 1.3 android,ios,bada,blackberry,symbian,webos,windows phone 框架,开发包。以及api 下载了我好久才下完
本程序是我第一次开发的PhoneGap的源程序。使用最简单的实例。
phoneGap图灵书,都知道这类的书比较好,虽然有点老,但对于学习重要的是理解,理解之后再去追求技术的更新迭代.
当前最新的phonegap(cordova)环境搭建指南,我就是按照这个一步一步做的,成功了,如有疑问请留言,会第一时间解决。
phonegap_smspi SMSPI Phone Gap应用程序
CallJavaFunctionFromJavascriptPlugin 一个简单的 Phone-Gap Android 插件,演示了如何从 JavaScript 调用 Java 函数来执行一些本机代码。 该插件为您提供了一个CallJavaFunctionFromJavascriptPlugin对象,该对象...
因此,目前开发商可以只 编写一次应用程序,然后在7个主要的移动平台和应用程序商店(app store)里进行发布,这些移动平台和应用程序商店包括:iOS、Android、BlackBerry、webOS、bada、Winodws Phone以及Symbian。...
testApp1 使用Phone Gap将Angular Web App测试到Android App
PhoneGap是一个自由开放源码的开发工具和框架,允许利用HTML + JavaScript + CSS的强大功能在多个手机平台上开发程序,开发出来的程序经过在各自的平台上编译形成独立的安装程序。使程序看起来和native的程序一样。
协作员工目录 建立在 Ionic 和 Angular 之上 这是一个以分层方式维护员工目录的简单应用程序,以便用户可以跟踪直接老板和下线员工的详细信息。 贡献是 UI 框架 - Ionic + Angular、Phone Gap、Android SDK Manager
2个项目目录,都引入,把zxing当作库引入到mylchscm里,mylchscm就能运行了,生成的apk不用单装zxing,基本上没做什么功能,...网上找了不少东西,终于拼起来了,大师们就不用吐槽了,一个纯业余爱好者的纯业余小玩意。
使用Eclipse ADT构建PhoneGap入门程序, 参见博客 http://blog.csdn.net/psp0001060/article/details/525
思维与游戏 Mind and Play是一个学校App开发项目
PhoneGap 工作坊在本教程中,您将使用 PhoneGap 创建一个功能齐全的员工目录应用程序。 您将学习: 如何使用不同的本地数据存储策略。 如何使用多种 PhoneGap API,例如 Geolocation、Contacts 和 Camera。 如何处理...
KidsLauncher 你好 !。 这是Android启动器。 他基于DOMLauncher启动器,并使用Cordoba(Phone Gap),HTML 5,JS,CSS构建。 需要添加模块以获取全部功能。
phonegap3.4安装详细步骤及问题处理办法
在本教程中,您将使用 PhoneGap 创建一个功能齐全的员工目录应用程序。 您将学习: 如何使用不同的本地数据存储策略。 如何使用多种 PhoneGap API,例如 Geolocation、Contacts 和 Camera。 如何处理特定的移动...
移动端开发调试工具,PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台。它使开发者能够在网页中调用IOS,Android,Palm,Symbian,WP7,WP8,Bada和Blackberry等智能手机的...
PhoneGAP实例源码,含汇率换算器、万圣节摇摇乐及指南针实例