Phonegap外掛編寫
轉自: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時記得申請許可權。
具體程式碼:
- package com.phonegap.kiddyu.plugin;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- import android.telephony.SmsManager;
- import com.phonegap.api.Plugin;
- import com.phonegap.api.PluginResult;
- public class MessagePlugin extends Plugin {
- private static final String SEND = "send";
- @Override
- public PluginResult execute(String action, JSONArray data, String callbackId) {
- PluginResult result;
- if (SEND.equals(action)) {
- try {
- JSONObject jsonObj = new JSONObject();
- String target = data.getString(0);
- String content = data.getString(1);
- SmsManager sms = SmsManager.getDefault();
- sms.sendTextMessage(target, null, content, null, null);
- jsonObj.put("target", target);
- jsonObj.put("content", content);
- result = new PluginResult(PluginResult.Status.OK, jsonObj);
- } catch (JSONException ex) {
- result = new PluginResult(PluginResult.Status.JSON_EXCEPTION);
- }catch(IllegalArgumentException ex){
- result = new PluginResult(PluginResult.Status.ERROR);
- }
- } else {
- result = new PluginResult(PluginResult.Status.INVALID_ACTION);
- }
- return result;
- }
- }
4、為phonegap增加一個javascript的API
在工程目錄www/js下面增加一個javascript檔案:phonegapPlugin.js,然後加入程式碼:
- var Message = function(){};
- Message.prototype = {
- send: function(success, error, target, content){
- PhoneGap.exec(success, error, "MessagePlugin", "send", [target, content]);
- }
- };
- PhoneGap.addConstructor(function() {
- PhoneGap.addPlugin("message", new Message());
- });
- var Message = function(){};
- Message.prototype = {
- send: function(success, error, target, content){
- PhoneGap.exec(success, error, "MessagePlugin", "send", [target, content]);
- }
- };
- PhoneGap.addConstructor(function() {
- PhoneGap.addPlugin("message", new Message());
- });
關鍵的方法是PhoneGap.exec(success, error, "MessagePlugin", "send", [target, content]);
相關文章
- 給Ionic寫一個cordova(PhoneGap)外掛
- egg外掛編寫
- 編寫node 外掛
- eggjs外掛編寫JS
- 編寫jq外掛
- vue外掛編寫小記Vue
- 如何編寫 ProtoBuf 外掛 (一) ?
- 如何編寫 ProtoBuf 外掛 (二) ?
- 如何編寫 ProtoBuf 外掛 (三) ?
- 編寫自己的Babel外掛(一)Babel
- Go - 如何編寫 ProtoBuf 外掛(二)?Go
- Go - 如何編寫 ProtoBuf 外掛 (一) ?Go
- Go - 如何編寫 ProtoBuf 外掛 (三) ?Go
- Flutter 外掛編寫必知必會Flutter
- flutter外掛編寫及釋出流程Flutter
- 自己動手編寫一個Mybatis外掛:Mybatis脫敏外掛MyBatis
- 如何從零編寫一個vite外掛 建立 vite 外掛通用模板Vite
- 如何編寫一個 Pulsar Broker Interceptor 外掛
- 編寫一個簡單的babel外掛Babel
- APISIX外掛如何編寫單元測試API
- 從零開始編寫一個babel外掛Babel
- 從AST編譯解析談到寫babel外掛AST編譯Babel
- 看完你也想編寫自己的 react 外掛React
- Gradle 與 AGP 構建 API: 如何編寫外掛GradleAPI
- 蜻蜓安全編寫外掛模組 webcrack 實踐Web
- vscode外掛編寫體驗-右鍵選單VSCode
- 如何編寫Log4j2脫敏外掛
- WebRTC Gateway Janus入門:從配置到編寫外掛WebGateway
- CocosCreator3D外掛教程(9):如何優雅的編寫外掛皮膚程式碼3D
- 第三節 安裝 phpstorm go 外掛 編寫 holle worldPHPORMGo
- 編寫一個谷歌外掛翻譯Udemy+NetFlix字幕谷歌
- Viper 微服務框架 編寫一個hello world 外掛-02微服務框架
- vscode markdown格式化的外掛編寫(1)[釋出流程]VSCode
- EFK 配置geo-ip落地實踐(二)fluentd外掛編寫
- “改造” VS Code 編輯器,一起寫個外掛吧!
- [外掛擴充套件]前臺編輯器外掛Editor套件
- VS Code markdown格式化的外掛編寫(2)[開發流程]
- Flutter外掛開發指南01: 通道Channel的編寫與實現Flutter
- VS Code markdown格式化的外掛編寫(3)[解難反思]