uni-app(五)⼩程序的⼀些注意事项,踩坑onPullDownRefresh 下拉刷新,使⽤时,需要注意,uni-app 官⽹有这么两段话:
需要在 pages.json ⾥,到的当前页⾯的pages节点,并在 style 选项中开启 enablePullDownRefresh
当处理完数据刷新后,uni.stopPullDownRefresh 可以停⽌当前页⾯的下拉刷新
pages.json 页⾯
"pages": [
{
"path": "pages/index/index",
"style": {
"enablePullDownRefresh": true
}
},
...
]
index.vue 页⾯
// 下拉刷新
onPullDownRefresh() {
uni.showLoading({
title: '刷新中...'
})
// 这⾥执⾏你设定的动作
...
// 定时关闭
setTimeout(function () {
uni.hideLoading()
uni.stopPullDownRefresh()
}, 1000)
}
段落换⾏、超过指定⾏⽤省略号代替
如果使⽤了破坏正常⽂档流的样式属性,⽐如定位,或者弹性盒 flex 等属性时,可以这样强制换⾏
word-wrap: break-word;
word-break: break-all;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
// ⾏数可以⾃⾏定义
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
图⽚、⽂件上传、下载
使⽤ uploadFile、downloadFile ⽅法时,需要在公众平台⾥配置域名,否则,会报错
登录授权当前⼩程序后,开发管理 -> 开发设置 -> 服务器域名
隐藏底部 tab
pages.json ⽂件⾥配置的 tabBar 为⼩程序原⽣tab,有时候我们需要隐藏、显⽰:
隐藏tab,uni.hideTabBar()
显⽰tab,uni.showTabBar()
图⽚缩放展⽰
宽⾼等⽐缩放,mode="scaleToFill"
宽度铺满,⾼度继承原图⽚⾼,mode="widthFix"
图⽚间隙
当⼀组图⽚横铺、纵铺展开后,图⽚之间会莫名产⽣空⽩间隙,这时给予样式 vertical-align: top;
⽤户授权
⾸次让⽤户授权,⽤户拒绝后,需要再次授权怎么办?授权后,需要把数据本地缓存起来,如果⽤户清除掉了授权信息,怎么重新授权?
这时,我们不妨将授权封装成⼀个组件,主动调⽤
封装 getInfo 组件
<template>
<view class="tip" v-show="show">
<view class="text">需要您授权信息才能获取相关服务</view>
<view>
<view class="tipBtn" @click="submit">确定</view>
<button class="tipBtn" type="default" open-type="getUserInfo" @getuserinfo="getuserinfo">授权</button> </view>
</view>
</template>
<script>
如何制作app小程序export default {
props: {
show: {
type: Boolean,
default: false
}
}
methods: {
// ⽤户授权
getuserinfo(res) {
let info = res.detail.userInfo || res.mp.detail.userInfo
// 授权成功,则存储数据
if (info) {
uni.setStorageSync('userInfo', info)
}
this.$emit('changeShow',false)
}
}
}
</script>
<style lang="scss" scoped>
// 此处样式,就不描述了
</style>
组件使⽤
<template>
<getInfo :show="getInfo @changeShow="changeShow" />
</template>
<script>
import getInfo from '@/components/getInfo/index'
export default {
props: {
show: {
getInfo: false
}
},
created() {
},
components: {
getInfo
},
methods: {
getuserinfo() {
this.info = StorageSync('userInfo')
if (this.info) {
// 成功的操作
...
} else {
/
/ 不存在,则展⽰授权弹框
}
},
changeShow(bool) {
this.info = StorageSync('userInfo')
if (this.info) {
// 成功的操作
... } }
}
}
</script>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论