app项目中几个常用的cordvoa插件

1.拍照

cordova plugin add cordova-plugin-camera

先拿到base64图片,然后将base64转成file上传

 navigator.camera.getPicture(onSuccess, onFail, {
            quality: 50,
            destinationType: Camera.DestinationType.DATA_URL
          });
          function getBlobBydataURI(dataURI, type) {
            let binary = atob(dataURI.split(',')[1]);
            let array = [];
            for (let i = 0; i < binary.length; i++) {
              array.push(binary.charCodeAt(i));
            }
            return new Blob([new Uint8Array(array)], {type: type});
          }
          function onSuccess(imageData) {
            let url = "data:image/jpge;base:64,"+imageData;
            let Blob = getBlobBydataURI(url, 'image/jpeg');
            param.append('file', Blob,"file_"+Date.parse(new Date())+".jpeg")
            param.append('module', 'user')
            vm.uploading(param);//上传文件的函数
          }

2.定位

cordova plugin add cordova-plugin-geolocation
export default {
  install: function(Vue, options) {
    Vue.watchPosition = function(){
      var options = {
        maximumAge: 3600000,
        timeout: 3000,
        enableHighAccuracy: true,
      }
      var watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
      function onSuccess(position) {
        let latitude =  position.coords.latitude? position.coords.latitude:''
        let longitude =  position.coords.longitude? position.coords.longitude:''
        localStorage.setItem('latitude',latitude)
        localStorage.setItem('longitude',longitude)
        // console.log('dingwei')
      }
    }
  }

3.商户协议

cordova plugin add cordova-plugin-customurlscheme --variable URL_SCHEME=URL_SCHEME

4.打开通讯录

cordova plugin add cordova-plugin-contacts
    let options = new ContactFindOptions();
        options.filter = "";
        options.multiple = true;
        let fields = ["displayName", "phoneNumbers"];
        navigator.contacts.find(fields, contactfindSuccess, contactfindError, options);
        function contactfindSuccess(contacts){
          for (var i = 0; i < contacts.length; i++) {
            let objs = {};
            objs.displayName = contacts[i].displayName;
            objs.phoneNumber = contacts[i].phoneNumbers[0].value;
            vm.formatContacts.push(objs)    
          }

        }

5.支付宝

cordova plugin add cordova-plugin-alipay-v2 --variable APP_ID=APP_ID
//form后端返的参数           
  cordova.plugins.alipay.payment(form, function success(e) {
      if (e.resultStatus == 9000) {
          console.log('支付成功')
      } else if (e.resultStatus == 8000) {
          console.log('正在支付')
      }
  }, function error(e) {
       console.log('支付失败')
  });

6.QQ分享

cordova plugin add cordova-plugin-qqsdk
        var args = {};
        args.client = QQSDK.ClientType.QQ;//QQSDK.ClientType.QQ,QQSDK.ClientType.TIM;
        args.scene = QQSDK.Scene.QQ;//QQSDK.Scene.QQZone,QQSDK.Scene.Favorite
        args.title = communityName;
        args.description = summary;
        args.image =picurl;
        args.url = url;
        QQSDK.shareNews(function () {
          alert('分享成功')
        }, function (failReason) {
          alert('分享失败')
        }, args);

7.微博分享

cordova plugin add cordova-plugin-weibosdk --variable WEIBO_APP_ID=APP_ID
       let args = {};
          args.url = Url;
          args.title = '活动标题';
          args.description = '活动详情';
          args.image = '图片路径'https://cordova.apache.org/static/img/pluggy.png';
          WeiboSDK.shareToWeibo(function () {
           alert('分享成功')
          }, function (failReason) {
             alert('分享失败')
          }, args);    

8.微信

cordova plugin add https://github.com/xu-li/cordova-plugin-wechat --variable wechatappid=APPID

微信支付

            let obj = {}
        obj.mch_id = partnerid
              obj.prepay_id = prepayid
              obj.nonce = noncestr
              obj.timestamp = timestamp
              obj.sign = sign
              Wechat.sendPaymentRequest(obj, function () {
                alert('支付成功')
              }, function (reason) {
                alert('支付失败')
              });

微信分享

      Wechat.share({
            message: {
              title: communityName,//分享标题
              description: summary,//分享内容简介
              thumb: picurl,//图片
              media: {
                type: Wechat.Type.WEBPAGE,
                webpageUrl: url//跳转路径
              }
            },
            scene: Wechat.Scene.TIMELINE//分享朋友圈
                   //Wechat.Scene.SESSION  分享微信好友
          }, function () {
        alert('分享成功') },
function (reason) {
        alert('分享失败') });

9.启动页

cordova plugin add cordova-plugin-splashscreen

 10.极光推送

 cordova plugin add jpush-phonegap-plugin --variable APP_KEY=APP_KEY    //觉得这个能不能装上完全看人品

  设置用户别名,唯一

            if(window.JPush){
              window.JPush.setAlias({ sequence: 1, alias: vm.user.userPhone},
                (result) => {
                  var sequence = result.sequence
                  var alias = result.alias
                }, (error) => {
                  var sequence = error.sequence
                  var errorCode = error.code
                })
            }

  调用

      if( window.plugins){
	    window.setTimeout(function(){
		    //启动极光推送服务
		    window.plugins.jPushPlugin.init();
		    window.plugins.jPushPlugin.setDebugMode(true);
		    //收到推送信息触发事件
		    document.addEventListener("jpush.receiveNotification", function (event) {
//			    alert("receiveNotification:" + event.alert);
		    }, false);
		    //打开推送消息触发事件
		    document.addEventListener("jpush.openNotification", function (event) {
			    alert("open Notificaiton:" + event.alert);
		    }, false);
		    //点击通知栏的回调,在这里编写特定逻辑
		    window.plugins.jPushPlugin.openNotificationInAndroidCallback = function (data) {
			    let obj = {
				    title:data.title, // 标题
				    alert:data.alert, // 推送信息
				    param:data.extras['cn.jpush.android.EXTRA'] // 传参
			    }
			    alert(JSON.stringify(obj))
		    }
	    }, 200);
      }

  

posted @ 2017-11-17 10:34  阿狸很酷  阅读(939)  评论(0编辑  收藏  举报