【微信小程序】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万随机数排序并统计耗时。测试显示:快速排序综合性能最优&…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...

C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...