开启掘金成长之旅!这是我参与「掘金日新计划 · 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) {
//失败回调
}