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); }