Cordova插件开发入门(1)

很多时候官网的插件不足给我们使用、比如说:现在公司要正在做Phonegap的项目,要用到自主研发的一些技术,
那么这个技术是你们公司研发的,网上就根本不可能有这种插件了、那么就要开始学习cordova来自定义一个插件.

下面开始一个简单的例子
这个代码是我们公司的一个语音拨号、语音通知的插件,但是出于懒惰的原因,我就在这个上面加一个测试的tt,实现弹出一个吐司

/**
 * Author:View on 2015/12/30 10:21
 * Class Synopsis:
 */
public class VoicePlugin extends CordovaPlugin {

    private static final String VICEO_ACTION="viceo";
    private static final String DIAL_ACTION="dial";
    private static final String text="tt";
    private static final String TAG=VoicePlugin.class.getSimpleName();

    public VoicePlugin() {
    }

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        Log.e("ViewLog","get action is: "+action.toString());
        Log.e("ViewLog","get args is: "+args.toString());
        if(action.equals(VICEO_ACTION)){
            //语音通知
            ViceoAction();
            Log.e("ViewLog  ViceoAction","get args is: "+args.toString());
        }else if(action.equals(DIAL_ACTION)){
            //点击拨号
            DialAction();
            Log.e("ViewLog  DialAction","get args is: "+args.toString());
        }else if(action.equals(text)){
            Toast.makeText(cordova.getActivity(),"Hello",Toast.LENGTH_SHORT).show();
        }
        return false;
    }

    private void DialAction() {

    }

    private void ViceoAction() {


    }

    @Override
    public void initialize(CordovaInterface cordova, CordovaWebView webView) {
        super.initialize(cordova, webView);
    }

第二步:
在res/xml/config.xml下添加插件类(这里的name和以下的操作有关系)

    <feature name="Voice">

        <param name="android-package" value="com.sunrise.voice.VoicePlugin"></param>

    </feature>

第三步:
在assets/www/plugins下,建立一个包
com.sunrise.voice,在这个包下面建立一个xx.js(这里我建立问voice.js)

cordova.define("com.sunrise.voice.voice", function(require, exports, module) {

var exec = require('cordova/exec');



module.exports = {

    tt: function (successCallback, errorCallback, args) {
            exec(successCallback, errorCallback, "Voice", "tt", args);
        },
};

})

第四步:
在assets/www/cordova_plugins.js下添加插件配置
file:是第三步的文件路径
id:是第三步的 com.sunrise.voice.voice
merges:调用的方法

 {
            "file": "plugins/com.sunrise.voice/voice.js",
            "id": "com.sunrise.voice.voice",
            "merges": [
                        "navigator.voice"
                    ]
      }

第五步:
在assets/www/index.html下开始测试

  <script type="text/javascript" charset="utf-8">

         document.addEventListener("deviceready", onDeviceReady, false);
         function goDial() {       navigator.voice.tt(function success(res){},function error(e){},[1])   }


    </script>
    <body>
        <div class="app">

            <p><a href="#" onclick="goDial(); return false;">Show Alert</a></p>
        </div>

        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
    </body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值