【微信小程序】uniapp开发微信小程序
uniapp开发微信小程序
1、上拉加载 下拉刷新
import { onReachBottom, onPullDownRefresh } from '@dcloudio/uni-app';
配置允许下拉刷新:
{"path" : "pages/pet/pet","style" : {"navigationBarTitleText" : "",// 设置允许下拉刷新"enablePullDownRefresh": true,// 设置触底加载更多操作"onReachBottomDistance": 100,// 页面标题"navigationBarTitleText": "萌宠案例"}
}
下拉加载结束后,停止刷新
uni.stopPullDownRefresh()
2、设置加载更多
需要集成模块
<uni-load-more status="loading"></uni-load-more>
3、图片大图预览
current: 当前第几张, urls:图片地址
uni.previewImage({// 当前图片为第几张current: index,// 图片地址urls: petList.value.map(item => item.url)
})
4、一键回顶部
一键回顶部
uni.pageScrollTo({duration: 200,scrollTop: 0
})
5、获取用户头像
<button open-type="chooseAvatar" @chooseavatar="getUserAvatar">获取用户头像</button>// 获取用户头像
getUserAvatar(e) {this.avatarUrl = e.detail.avatarUrl
}
6、获取用户昵称
<input v-model="wechatNickname" placeholder- style="color:#A1AABF;" class="passInput" type="nickname":border="false" @change="getName" placeholder="获取微信昵称" :clearable="false" />getName(e) {this.wechatNickname = e.detail.value;
},
7、获取用户手机号
(测试号和企业账户可以直接获取,个人号无法使用)
<button open-type="getPhoneNumber" @getphonenumber="ongetphonenumber">一键获取手机号</button>async ongetphonenumber({detail}) {console.log('获取手机号')// 判断是否授权成功if (detail.iv) {let params = { }// 去后端请求获取真正的号码console.log(params)}
}
8、动态修改顶部导航文字
// 动态修改顶部导航
uni.setNavigationBarTitle({title: name
})
9、获取页面的url参数
import { onLoad } from '@dcloudio/uni-app'onLoad(options => {console.log(options)
})
10、不同平台下,使用不同的代码 #ifdef
在css和js和template中都可以进行使用
// #ifdef MP-TOUTIAOconsole.log('这里是抖音的逻辑')
// #endif// #ifndef MP-TOUTIAOconsole.log('这里是除了抖音以外的逻辑')
// #endnif
11、不同平台情况下,获取安全区域以及胶囊按钮高度
let SYSTEM_INFO = uni.getSystemInfoSync()
// 安全区域
export let getStatusBarHeight = () => SYSTEM_INFO.statusBarHeight || 10// 胶囊按钮export let getTitleBarHeight = () => {if (uni.getMenuButtonBoundingClientRect) {let {top,height} = uni.getMenuButtonBoundingClientRect()return (top - getStatusBarHeight()) * 2 + height}return 50
}export const getNavBarHeight = () => {return getStatusBarHeight() + getTitleBarHeight()
}export const getIconLeft = () => {// #ifdef MP-TOUTIAOreturn tt.getCustomButtonBoundingClientRect().leftIcon.width// #endif// #ifndef MP-TOUTIAOreturn 0// #endif
}
12、开启朋友圈分享|分享给好友
需要在组件中实现两个方法onShareAppMessage
, onShareTimeline
注意: 分享到朋友圈,未认证的账号无法使用,需要测试号或者认证后的账号
import {onShareAppMessage,onShareTimeline
} from '@dcloudio/uni-app'// 分享给朋友
onShareAppMessage(e => {return {title: '~咸虾米壁纸~'}
})// 朋友圈
onShareTimeline(() => {return {title: '~咸虾米壁纸~',imageUrl: '/static/xxmLogo.png'}
})
13、设置通屏
在pages.json中设置页面的navigationStyle
属性为custom
{"path": "pages/index/index","style": {"navigationBarTitleText": "推荐","navigationStyle": "custom"}
},
14、图片保存到本地
// #ifdef H5
uni.showModal({content: '请长按图片进行保存',showCancel: false
})
// #endif// #ifndef H5
let filePath = 'https://cdn.qingnian8.com/public/xxmBizhi/20240914/1726307754431_8.jpg'
uni.getImageInfo({src: filePath,success: (res) => {uni.saveImageToPhotosAlbum({filePath: res.path,success: () => {uni.showToast({title: '保存成功',icon: 'none'})}})}
})
// #endif
15、request请求工具类
const baseURL = 'https://tea.qingnian8.com'const httpInterceptor = {invoke(options) {let token = uni.getStorageSync('token')options.header = {['access-key']: '488957',Authorization: token,...options.header}options.header['acess-key'] = '488957'options.timeout = 10 * 1000options.url = baseURL + options.urlconsole.log(options)}
}// 请求拦截器
uni.addInterceptor('request', httpInterceptor)const request = (options) => {// uni.showLoading({// mask: true,// title: "数据加载中...",// });uni.showNavigationBarLoading()return new Promise((resolve, reject) => {uni.request({...options,// 响应拦截器success(res) {// 获取当前页面的栈const pages = getCurrentPages();console.log(pages, '==============')// 获取当前页面const currentPage = pages[pages.length - 1];// 获取当前页面的路由const currentRoute = currentPage.route;// 定义401不需要登录的路由数组const routes = ["pages/index/index"]if (res.statusCode === 200) {if (res.data.errCode == 0) {resolve(res.data);} else if (res.data.errCode === 401 && !routes.includes(currentRoute)) {uni.showModal({title: "温馨提示",content: "您还没有登录,是否去登录",success(res) {if (res.confirm) {uni.navigateTo({url: "/pages/login/login",});} else {uni.navigateBack({delta: 1,});}},});} else if (res.data.errCode === 400) {uni.showToast({title: res.data.errMsg,icon: 'none'})} else {resolve(res.data);}} else {reject(res.data);}},// 响应失败fail(err) {console.log(err)uni.showToast({icon: "none",title: "网络错误, 换个网络试试",});reject(err.errMsg);},complete() {uni.hideNavigationBarLoading()},});});
};export default request
相关文章:
【微信小程序】uniapp开发微信小程序
uniapp开发微信小程序 1、上拉加载 下拉刷新 import { onReachBottom, onPullDownRefresh } from dcloudio/uni-app;配置允许下拉刷新: {"path" : "pages/pet/pet","style" : {"navigationBarTitleText" : ""…...
多视图几何--结构恢复--三角测量
三角测量 1. 核心公式推导 假设两个相机的投影矩阵为 P P P 和 P ′ P P′,对应的匹配图像点(同名点)为 ( u , v ) (u, v) (u,v) 和 ( u ′ , v ′ ) (u, v) (u′,v′),目标是求解三维点 X [ X x , X y , X z , 1 ] T X [X_x, X_y, X_z, 1]^T X…...
【Linux三剑客】awk命令使用
AWK 编程语言中的变量 AWK 提供了许多可在模式和操作中使用的内置变量。最常用的变量是 - NR - 表示当前记录(行)号 NF - 表示输入记录中的字段总数。 $0 - 整个当前记录。 $1, $2, $3, … - 当前记录中的第一个、第二个、第三个…字段。 查找passwd中…...

Python CATIA二次开发实战:CATIA产品号批量同步文件名工具开发
引言 在汽车/航空制造领域,CATIA文件的结构化管理直接影响着PLM系统数据一致性。笔者近期开发的增强型产品号同步工具,成功解决了工程实践中文件名与产品名称不同步的痛点问题。本文将从技术实现、功能亮点、应用场景三个维度进行深度解析。 一、技术方…...

我的两个医学数据分析技术思路
我的两个医学数据分析技术思路 从临床上获得的或者公共数据库数据这种属于观察性研究,是对临床诊疗过程中自然产生的数据进行分析而获得疾病发生发展的规律等研究成果。再细分,可以分为独立危险因素鉴定和预测模型构建两种。 独立危险因素鉴定是一直以…...

操作系统之进程状态、优先级和切换与调度
文章目录 1. 进程状态1.1 课本名词提炼1.2 运行&阻塞&挂起1.2.1 运行1.2.2 阻塞1.2.3 挂起 1.3 理解内核链表1.4 Linux中的内核解释1.5 进程状态的查看1.6 Z(zombie)——僵尸进程1.6.1 创建僵尸进程1.6.2 僵尸进程的危害 1.7 孤儿进程 2. 进程优先级2.1 基本概念2.2 查…...

[免费]微信小程序(图书馆)自习室座位预约管理系统(SpringBoot后端+Vue管理端)(高级版)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序(图书馆)自习室座位预约管理系统(SpringBoot后端Vue管理端)(高级版),分享下哈。 项目视频演示 【免费】微信小程序(图书馆)自习室座位预约管理系统(SpringBoot后端Vue管理端)(高级版…...
你使用过哪些 Java 并发工具类?
你的回答(口语化,面试场景) 面试官:你使用过哪些 Java 并发工具类? 你: 好的,我结合项目经验来说说常用的并发工具类: CountDownLatch 作用:等所有线程就绪后再触发任务…...
模板方法模式的C++实现示例
核心思想 模板方法设计模式是一种行为设计模式,它定义了一个算法的框架,并将某些步骤的具体实现延迟到子类中。通过这种方式,模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法模式的核心在于: …...

国产编辑器EverEdit - 脚本(解锁文本编辑的无限可能)
1 脚本 1.1 应用场景 脚本是一种功能扩展代码,用于提供一些编辑器通用功能提供不了的功能,帮助用户在特定工作场景下提高工作效率,几乎所有主流的编辑器、IDE都支持脚本。 EverEdit的脚本支持js(语法与javascript类似)、VBScript两种编程…...

越早越好!8 个反直觉的金钱真相|金钱心理学
很多人都追求财富自由,但成功的人少之又少。 这可能是因为,人们往往忽略了一些金钱的真相和常识。 01 金钱常识 & 真相 为了构建健康的金钱观,我读了一本有点反直觉,有点像鸡汤,但都是财富真相的书。 来自 Morg…...
linux docker相关指令
1、镜像操作 0)、搜索:docker search 镜像名称 1)、拉取:docker pull 2)、推送:docker push 3)、查看:docker images 4)、查看所有镜像ID:d…...
实时采集到的语音进行语音识别
要在.NET Framework 4.8中使用C#实现离线实时语音识别,可以使用开源库Vosk(支持离线ASR)配合音频处理库NAudio。 步骤 1:安装依赖库 1.1. 安装NuGet包: - Install-Package NAudio(处理音频输入)…...

Ollama 本地部署 DeepSeek R1 及 Python 运行 open-webui 界面(windows)
DeepSeek R1 ollama open-webui 本地部署(windows) DeepSeek-R1本地部署配置要求 Github地址:https://github.com/deepseek-ai/DeepSeek-R1?tabreadme-ov-file 模型规模最低 GPU 显存推荐 GPU 型号纯 CPU 内存需求适用场景1.5B4GBRTX 3…...
牛客周赛:84:C:JAVA
链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 \hspace{15pt}本题为《D.小红的陡峭值(三)》的简单版本,两题的唯一区别在于本题的数据范围更小。 \hspace{15pt}小红定义一个字符串的陡峭值为&a…...
5. 前后端实现文件上传与解析
1. 说明 在实际开发中,比较常见的一个功能是需要在前端页面中选择系统中的某个文件上传到服务器中进行解析,解析后的文件内容可以用来在服务器中当作参数,或者传递给其它组件使用,或者需要存储到数据库中。所以本文就提供一种方式…...
SpringBoot 接入 豆包 火山方舟大模型
火山方舟控制台 开通模型推理、知识库 应用入口; 文档中心 各类接口说明及SDK 获取; 向量数据库VikingDB 文档 下翻找到有java操作案例; 实现目标功能效果: 通过SDK调用 豆包大模型,在代码内实现问答的效果…...

IDEA接入阿里云百炼中免费的通义千问[2025版]
安装deepseek 上一篇文章IDEA安装deepseek最新教程2025中说明了怎么用idea安装codeGPT插件,并接入DeepSeek,无奈接入的官方api已经不能使用了,所以我们尝试从其他地方接入 阿里云百炼https://bailian.console.aliyun.com/ 阿里云百炼是阿…...

下载kali linux遇到的一些问题
kali官网:kali官网跳转 问题一:未启动VM Service VMware Workstation 未能启动 VMware Authorization Service。您可以尝试手动启动VMware Authorization Service。如果此问题仍然存在,请联系VMware 支持部门。 解决办法: 步骤1…...

常见排序算法深度评测:从原理到10万级数据实战
常见排序算法深度评测:从原理到10万级数据实战 摘要 本文系统解析冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序和基数排序8种经典算法,通过C语言实现10万随机数排序并统计耗时。测试显示:快速排序综合性能最优&…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...