2013-05-17 1 views
3

Android에서 phonegap 용 SMS 플러그인을 만들고 있습니다. 메시지를 보내려고 할 때 잘못된 동작 오류가 발생합니다. 나는 Android + phonegap +package manager을 보았다. 내 문제는 동일하지만 링크의 모든 대답은 도움이되지 않습니다.phonegap SMS 플러그인에 잘못된 동작 오류가 발생했습니다.

이것은 내 .js 파일입니다.

var SmsPlugin = function() {}; 

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

window.sms = new SmsPlugin(); 

그리고 다음은 내가 너무 config.xml 파일에 필요한 변경을 한 내 된 .java 파일

package com.*.PhonegapSMSDPN; 

import org.apache.cordova.api.PluginResult; 
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 android.util.Log; 
import android.widget.Toast; 

import org.apache.cordova.api.CordovaPlugin; 

public class SmsPlugin extends CordovaPlugin { 
    public final String ACTION_SEND_SMS = "SendSMS"; 

    public PluginResult execute(String action, JSONArray arg1, String callbackId) { 
     Toast.makeText(this.cordova.getActivity(), action, Toast.LENGTH_SHORT).show(); 
     PluginResult result = new PluginResult(Status.INVALID_ACTION); 
     Log.e("msg", 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()); 
       Log.e("error", result+" "); 
      }   
     } 

     return result; 
    } 

    private void sendSMS(String phoneNumber, String message) { 
     SmsManager manager = SmsManager.getDefault(); 

     PendingIntent sentIntent = PendingIntent.getActivity(this.cordova.getActivity(), 0, new Intent(), 0); 

     manager.sendTextMessage(phoneNumber, null, message, sentIntent, null); 
    } 

} 

입니다. problem.Thanks

PS-내가 Phonegap2.7.0

사용하고

해결에 나를 인도 해주십시오

답변

0

귀하의 js 파일은 몇 가지 코드가 없습니다. 나는 phonegap에서 sms 플러그인을 구현했으며, 여기에 제 js 코드가 있습니다. 플러그인 경로를 사용자 정의해야합니다.

var SmsPlugin = function() {}; 

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

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

cordova.define("app/scripts/vendor/smsplugin", function (require, exports, module) { 
    var exec = require('cordova/exec'); 
    var SmsPlugin = function() {}; 

    /** 
    * Check if the device has a possibility to send and receive SMS 
    */ 
    SmsPlugin.prototype.isSupported = function (successCallback, failureCallback) { 
     return exec(successCallback, failureCallback, 'SmsPlugin', 'HasSMSPossibility', []); 
    } 
    /** 
    * Send a message to the given phone number 
    */ 
    SmsPlugin.prototype.send = function (phone, message, successCallback, failureCallback) { 
     return exec(successCallback, failureCallback, 'SmsPlugin', 'SendSMS', [phone, message]); 
    } 

    var smsplugin = new SmsPlugin(); 
     module.exports = smsplugin; 
}); 
관련 문제