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.");

            }

        }

}

 

你可能感兴趣的:(PhoneGap)