实用函数第二弹

121 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天

1、判断手机是否打开了GPS定位

let system = uni.getSystemInfoSync()

if(system.platform === 'android'){//判断平台

    var context = plus.android.importClass("android.content.Context")
    
    var locationManager = plus.android.importClass("android.location.LocationManager")
    
    var main = plus.android.runtimeMainActivity()
    
    var mainSvr = main.getSystemService(context.LOCATION_SERVICE)
    
    console.log('GPS',mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER))
    
    if(!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)){
        uni.showModal({
            title:'提示',
            content:'请打开定位服务功能',
            showCancel:false,
        })
        success() {
        if(!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)){
        let main = plus.android.runtimeMainActivity();
        
        let Intent = plus.android.importClass("android.content.Intent");
        
        let mIntent = new Intent('android.settings.ACTION_SETTINGS');
        
        main.startActivity(mIntent);//打开系统设置GPS服务页面
    
    }else{
        uni.showToast({
        title:'定位功能已启动',
        
        duration:2000
        
        })
    
    }
    
    }
    
    })

2、输入银行卡号识别

<script>
	import BIN from "bankcardinfo"
	export default {
		methods: {
			nextStep() {
				BIN.getBankBin('6217000130001272')
					.then(res => {
						console.log(res)
					})
					.catch(err=>{
						console.log(err)
					})
			}
		}
	}
</script>
//引入插件
npm install bankcardinfo --save-dev

3、uni跳转传递多个参数

const togo = function(url,data){  
    url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)  

    uni.navigateTo({    
        url  
    })   
}  
//或者有其他跳转
const red = function(url , data){
    url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)  

    uni.redirectTo({    
        url  
    }) 
}

export function param(data) {  
  let url = ''  
  for (var k in data) {  
    let value = data[k] !== undefined ? data[k] : ''  
    url += '&' + k + '=' + encodeURIComponent(value)  
  }  
  return url ? url.substring(1) : ''  
}  

export {togo , red}


//使用
//在main.js中
import * as navTo from '@/utils/navTo'  
 Vue.prototype.$navTo = navTo
4、uniapp 局部刷新
// 发送端
uni.$emit("changeDorm",val) // val需要发送的数据
// 接收端
created() {
 	 uni.$on("changeDorm",(res)=>{
  	  this.addinfo_=res
    })
}

5、获取地址栏URL,截取参数

getUrlParam (name) {
 	//let url = window.location.href.split('#')[0]
    let urll='http://qxth.qizhe7.com/h5/index.html?action=register&auth_code=B6A39T'
    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
    let url =urll.split('#')[0]
    let search = url.split('?')[1]
    if (search) {
    	var r = search.substr(0).match(reg)
    	if (r !== null) return unescape(r[2])
    	return null
    } else {
    	return null
    }
}

6、vue 向对象中写入新变量


let arr=[
    {age:15,name:'小红'},
     {age:15,name:'小明'},
      {age:15,name:'小嘿'},
]
for(var i=0;i<arr.lenght;i++){
    this.$set(arr[i] , 'checked' ,false)
}
// 1/要写入的对象,变量名,值

7、纯前端导出excel ,xlsx,file-saver

下载依赖
npm install xlsx
npm install file-saver --save
const xlsxParam = { raw: true };// 导出的内容只做解析,不进行格式转换
const wb = XLSX.utils.table_to_book(document.querySelector('#table'), xlsxParam);

/* get binary string as output */
const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' });
try {
  FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'import logs list.xlsx')
} catch (e) {
//失败回调
}