zoukankan      html  css  js  c++  java
  • 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);
          }
    

      

  • 相关阅读:
    3秒后页面跳转代码
    数据库 ""和null的在java 持久化中的区别
    去掉标签元素
    hibernate 自动封装
    hql 多对多查询
    javascript 数组
    spring mvc+mybatis整合
    collection映射
    mybatis中one2many
    mybatis中many2one
  • 原文地址:https://www.cnblogs.com/jsusu/p/7850378.html
Copyright © 2011-2022 走看看