Cordova SMS plugins

rusli
Site Admin
文章: 212
註冊時間: 週三 7月 07, 2010 9:49 pm

Cordova SMS plugins

文章rusli » 週五 7月 20, 2012 6:40 pm

src 目錄下加入 xxx.java 檔案

代碼: 選擇全部


package vIdegree.old;

import org.apache.cordova.api.PluginResult.Status;
import org.json.JSONArray;
import org.json.JSONException;

import android.app.PendingIntent;
import android.content.Intent;
import android.telephony.SmsManager;

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

public class sms extends Plugin {
   public final String ACTION_SEND_SMS = "SendSMS";
   
   @Override
   public PluginResult execute(String action, JSONArray arg1, String callbackId) {
      PluginResult result = new PluginResult(Status.INVALID_ACTION);
      
      if (action.equals(ACTION_SEND_SMS)) {
         try {
            String phoneNumber = arg1.getString(0);
            String message = arg1.getString(1);
            sendSMS(phoneNumber, message);
            result = new PluginResult(Status.OK);
         }
         catch (JSONException ex) {
            result = new PluginResult(Status.JSON_EXCEPTION, ex.getMessage());
         }         
      }
      
      return result;
   }

   private void sendSMS(String phoneNumber, String message) {
      SmsManager manager = SmsManager.getDefault();
      
        PendingIntent sentIntent = PendingIntent.getActivity(this.ctx.getContext(), 0, new Intent(), 0); 
      
      manager.sendTextMessage(phoneNumber, null, message, sentIntent, null);
   }

}


rusli
Site Admin
文章: 212
註冊時間: 週三 7月 07, 2010 9:49 pm

AndroidManifest.xml 設定

文章rusli » 週五 7月 20, 2012 6:42 pm

代碼: 選擇全部


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="vIdegree.old"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <supports-screens
       android:largeScreens="true"
       android:normalScreens="true"
       android:smallScreens="true"
       android:xlargeScreens="true"
       android:resizeable="true"
       android:anyDensity="true"
       />

    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.RECORD_VIDEO"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />   
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    <application android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity android:configChanges="orientation|keyboardHidden"
            android:name=".MyPhoneGapActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>



rusli
Site Admin
文章: 212
註冊時間: 週三 7月 07, 2010 9:49 pm

res/xml/plugins.xml

文章rusli » 週五 7月 20, 2012 6:45 pm

代碼: 選擇全部

<?xml version="1.0" encoding="utf-8"?>
<plugins>
     <!-- 略 -->
    <plugin name="sms" value="vIdegree.old.sms"/>   
</plugins>


rusli
Site Admin
文章: 212
註冊時間: 週三 7月 07, 2010 9:49 pm

Index.html

文章rusli » 週五 7月 20, 2012 6:46 pm

代碼: 選擇全部


<!DOCTYPE HTML>
<html>
  <head>
    <meta name="viewport" content="width=320; user-scalable=no" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>Minimal AppLaud App</title>
     
      <script src="jquery-1.7.2.min"></script>
     <script type="text/javascript" charset="utf-8" src="cordova-1.5.0.js"></script>
     <script type="text/javascript" charset="utf-8">
     
var sms = function () {};

sms.prototype.send = function (phone, message, successCallback, failureCallback) {   
    return cordova.exec(successCallback, failureCallback, 'sms', "SendSMS", [phone, message]);
};

cordova.addConstructor(function() {
    cordova.addPlugin("sms", new sms());
});

        var onDeviceReady = function() {

         $('#send').bind('click', function () {
            alert('Phone: ' + $('#phone').val() + ' Message: ' + $('#message').val());
            window.plugins.sms.send($('#phone').val(),
                    $('#message').val(),
                    function () {
                  alert('Message sent successfully');   
                },
                function (e) {
                   alert('Message Failed:' + e);
                }
            );
         });   
        };

        function init() {
            document.addEventListener("deviceready", onDeviceReady, true);
        }   
</script> 

  </head>
  <body onload="init();" id="stage" class="theme">
    <h2>Minimal AppLaud App</h2>

            <label for="phone">Recipient Number:</label>
            <input type="tel" id="phone" name="phone" placeholder="SMS Number"/>
            <label for="message">Message:</label>
            <textarea id="message" name="message"></textarea>      
            <a href="#" id="send" data-role="button">Send</a>   

  </body>
</html>




回到「Android」

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客