phoneGap的Android下编写phonegap 发送短信插件

一、前端代码的编写

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery  Mobile  Web 应用程序</title>
<link href="jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="cordova.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function(){
        //点击发送按钮调用onSend方法
        $(‘#send‘).bind(‘click‘, onSend);

        var onSend = function(){

            var tel = $(‘#tel‘).val();
            var content = $(‘#content‘).val();

            window.send(success, error, tel, content);

            var success = function(data){
                alert("发送短信成功tel : " + data);
            };

            var error = function(e){
                alert("发送短信失败"+e);
            };
        };
    });

    //调用插件
    window.send = function(success, error, tel, content) {
        cordova.exec(success, error, "Message", "send", [tel,content]);
    };
</script>
</head>
<body>
<div data-role="page" id="page">
    <div data-role="header">
        <h1>Phonegap发送短信插件</h1>
    </div>
    <div data-role="content">
         <div id="messageDiv">
            <input type="tel" id="tel" value="15201686455" />
            <textarea rows="20" cols="25" id="content">你好树根我们做朋友吧!</textarea>
            <button type="button" id="send">发送</button>
        </div>
    </div>
    <div data-role="footer">
        <h4>phonegap中文网</h4>
    </div>
</div>

</body>
</html>

二、注册插件

  在Android :res/xml/  这个目录下的配置文件下注册

<feature name="Message">
      <param name="android-package" value="com.example.phonegap.sendmessage.Message"/>
</feature>

三、 设置权限(需要调用权限的地方设置权限)

  这里是需要发送短信,所以设置发送短信的权限

<uses-permission android:name="android.permission.SEND_SMS" />

四、java 代码编写

  1、创建一个包:com.example.phonegap.sendmessage;

  2、包里创建一个class :Message

package com.example.phonegap.sendmessage;

import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.telephony.SmsManager;//该程序需要发送短信 所以要加上这个包

public class Message extends CordovaPlugin{
      private static final String SEND = "send";
        @Override
        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
            if (SEND.equals(action)) {
                try {
                    JSONObject jsonObj = new JSONObject();
                    String target = args.getString(0);  //收件人的信息返回
                    String content = args.getString(1);    //发送短信的内容

                    SmsManager sms = SmsManager.getDefault();//活动发送短信的对象
                    sms.sendTextMessage(target, null, content, null, null);//调用发送短信的对象的发送短信的方法

                    jsonObj.put("target", target);
                    jsonObj.put("content", content);

                    this.echo(target, callbackContext);
                    return true;
                } catch (JSONException ex) {
                    this.echo("FAIL", callbackContext);
                    return false;
                }catch(IllegalArgumentException ex){
                    this.echo("FAIL", callbackContext);
                    return false;
                }
            } else {
                this.echo("FAIL", callbackContext);
                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.");
            }
        }
}
时间: 2025-01-17 01:08:12

phoneGap的Android下编写phonegap 发送短信插件的相关文章

phoneGap的Android下编写phonegap 插件

一. javascript 端的编写  第一个参数 成功的回调函数 第二个参数 失败的回调函数 第三个参数 是插件的类名称,也就是后台java文件的类名 第四个参数 执行的 action 名称    对应的是后台java代码中的action名称 第五个参数 传递的参数是一个数组 function helloworld(success,error,option){ cordova.exec(success, error, "HelloWorld", "echo", o

Android学习--写一个发送短信的apk,注意布局文件的处理过程!!!

刚开始写Android程序如图发现使用了findViewById方法之后输出的话居然是null(空指针错误),也就是说这个方法没有成功.网上说这样写是在activity_main .xml去找这个ID所代表的控件,而现在使用的ADT在layout下除了activity_main .xml还多生成了一个fragment_main.xml.我就是把控件写在了后一个布局文件中.想请问下,使用什么样的方法是在fragment_main.xml去寻找控件呢? 回答:在PlaceHolderFragment

android 中调用接口发送短信

android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: Java代码   //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getDefault(); List<String> divideContents = smsManager.divideMessage(content); for (String text : divideContents) { smsManager.sendTextMessage(&

Android软件开发之发送短信与系统短信库解析

今天我和同学们讨论一下Android平台下如何调用系统方法发送短信.接收短信.系统的短信库相关的问题.进入正题,我们先使用Eclipse工具模拟给自己的模拟器发送一条短信.在Eclipse下打开DDMS Incoming number: 这里须要填写的是发件人的手机号码,这里只能输入数字否则会无法发送. Message: 这里为发送的内容send: 上面两项都填写完毕点击发送键可以给模拟器发送短信. <ignore_js_op> 点击发送后,模拟器中就可以看到自己收到了一条消息 发件人的号码为

android studio 模拟器控制台发送短信和定位

1.连接到模拟器 2.执行控制命令给模拟器发送信息 sms send 5554 sdlkj 向5554发送短信 geo fix 23 -112 让模拟器定位到 23 -112

web服务器不能正常发送短信

网站注册,用户获取验证码失败,经过网站开发兄弟提醒,研究了下fsockopen()等函数,现摘要如下 Fsockopen() (PHP4,PHP5) 用于打开一个网络链接或一个unix套接字链接. 也就是说,既然此函数会参与短信API收发,那么就有可能该函数打开了一个unix套接字链接,此时网站开发的兄弟亦证实了这点. 于是我马上想到很有可能是采用了三种套接字类型中的流套接字(sock_stream).那么就会产生3次握手.于是用iptables命令发现,交互包被防火墙drop掉了.但是仅到此,

android 发送短信 如何做到一条一条的发送,只有在上一条发送成功之后才发送下一条短信

android发送短信截获上一条发送是否成功,然后再来发送下一条短信 1.问题:在项目中遇到如下要求:待发短信有N条,实现一条一条的发送并在上一条短信发送成功之后再来发送下一条. for(int i=0;i<3;i++){ sendSMS(10086, text1, i); } private void sendSMS(String toAddress, String body, Long id) { // ---sends an SMS message to another device---

android 发送短信 怎样做到一条一条的发送,仅仅有在上一条发送成功之后才发送下一条短信

android发送短信截获上一条发送是否成功,然后再来发送下一条短信 1.问题:在项目中遇到例如以下要求:待发短信有N条,实现一条一条的发送并在上一条短信发送成功之后再来发送下一条. for(int i=0;i<3;i++){ sendSMS(10086, text1, i); } private void sendSMS(String toAddress, String body, Long id) { // ---sends an SMS message to another device-

android: 接收和发送短信

8.2    接收和发送短信 收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这 项功能,而 Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.每个 Android 手机都会内置一个短信应用程序,使用它就可以轻松地完成收发短信的操作,如 图 8.4 所示. 图   8.4 不过作为一名开发者,仅仅满足于此显然是不够的.你要知道,Android 还提供了一系 列的 API,使得我们甚至可以在自己的应用程序里接收和发送短信.也就是说,只要你有足 够的信