Phonegap外掛編寫

鴨脖發表於2012-07-02

轉自:http://blog.csdn.net/avenleft/article/details/7383294

目前PhoneGap雖然提供了很多的API,但是我們也很容易發現,他有很多地方不能滿足我們的需求,比如發簡訊。我也將介紹如何開發一個針對PhoneGap發簡訊的Plugin。(Android 版本)。

1、建立一個Android工程,建立之後的目錄結構如圖:


2、把PhoneGap的android版jar包、javascript和xml資料夾加入工程。(參照上一篇中的做法)目錄結構:


3、新增一個類MessagePlugin
這個類就是負責傳送簡訊功能的具體類,可以呼叫傳送簡訊的android API,當然如果是其他功能,則呼叫相應的API,但是當使用這個API時記得申請許可權。
具體程式碼:
Java程式碼 複製程式碼 收藏程式碼
  1. package com.phonegap.kiddyu.plugin; 
  2.  
  3. import org.json.JSONArray; 
  4. import org.json.JSONException; 
  5. import org.json.JSONObject; 
  6.  
  7. import android.telephony.SmsManager; 
  8.  
  9. import com.phonegap.api.Plugin; 
  10. import com.phonegap.api.PluginResult; 
  11.  
  12. public class MessagePlugin extends Plugin { 
  13.      
  14.     private static final String SEND = "send"
  15.      
  16.     @Override 
  17.     public PluginResult execute(String action, JSONArray data, String callbackId) { 
  18.         PluginResult result; 
  19.         if (SEND.equals(action)) { 
  20.             try { 
  21.                 JSONObject jsonObj = new JSONObject(); 
  22.                 String target = data.getString(0); 
  23.                 String content = data.getString(1); 
  24.                 SmsManager sms = SmsManager.getDefault(); 
  25.                 sms.sendTextMessage(target, null, content, nullnull); 
  26.                 jsonObj.put("target", target); 
  27.                 jsonObj.put("content", content); 
  28.                 result = new PluginResult(PluginResult.Status.OK, jsonObj); 
  29.             } catch (JSONException ex) { 
  30.                 result = new PluginResult(PluginResult.Status.JSON_EXCEPTION); 
  31.             }catch(IllegalArgumentException ex){ 
  32.                 result = new PluginResult(PluginResult.Status.ERROR); 
  33.             } 
  34.         } else { 
  35.             result = new PluginResult(PluginResult.Status.INVALID_ACTION); 
  36.         } 
  37.  
  38.         return result; 
  39.     } 
  40.  


4、為phonegap增加一個javascript的API
在工程目錄www/js下面增加一個javascript檔案:phonegapPlugin.js,然後加入程式碼:
Javascript程式碼 複製程式碼 收藏程式碼
  1. var Message = function(){}; 
  2.  
  3. Message.prototype = { 
  4.         send: function(success, error, target, content){ 
  5.             PhoneGap.exec(success, error, "MessagePlugin""send", [target, content]); 
  6.         } 
  7. }; 
  8.  
  9. PhoneGap.addConstructor(function() { 
  10.     PhoneGap.addPlugin("message"new Message()); 
  11. }); 
[javascript] view plaincopy
  1. var Message = function(){};  
  2.   
  3. Message.prototype = {  
  4.         send: function(success, error, target, content){  
  5.             PhoneGap.exec(success, error, "MessagePlugin""send", [target, content]);  
  6.         }  
  7. };  
  8.   
  9. PhoneGap.addConstructor(function() {  
  10.     PhoneGap.addPlugin("message"new Message());  
  11. });  


關鍵的方法是PhoneGap.exec(success, error, "MessagePlugin", "send", [target, content]);

相關文章