百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

小程序开发教程学习(二)

liuian 2025-01-20 14:45 25 浏览

八、小程序的API开发

1.wx.request使用:

a.概念:发起HTTPS网络请求

b.参数如下表所示:

属性

类型

默认值

是否必填

说明

支持版本

url

string


开发者服务器接口地址


data

string/object/ArrayBuffer


请求的参数


header

Object


设置请求的 header,header 中不能设置 Referer。

content-type 默认为 application/json


method

string

GET

HTTP 请求方法


dataType

string

json

返回的数据格式


responseType

string

text

响应的数据类型

>= 1.7.0

success

function


接口调用成功的回调函数


fail

function


接口调用失败的回调函数


complete

function


接口调用结束的回调函数(调用成功、失败都会执行)


c.示例代码如下:

wx.request({

url: 'test.php', //仅为示例,并非真实的接口地址

data: {

x: '',

y: ''

},

header: {

'content-type': 'application/json' // 默认值

},

success (res) {

console.log(res.data)

}

})

2.图片选择与微信拍照:

a.wx.chooseImage选择图片

概念: 从本地相册选择图片或使用相机拍照。

参数如下表:

属性

类型

默认值

是否必填

说明

支持版本

count

number

9

最多可以选择的图片张数


sizeType

Array.<string>

['original', 'compressed']

所选的图片的尺寸


sourceType

Array.<string>

['album', 'camera']

选择图片的来源


success

function


接口调用成功的回调函数


fail

function


接口调用失败的回调函数


complete

function


接口调用结束的回调函数(调用成功、失败都会执行)


示例代码如下:

wx.chooseImage({

count: 1,

sizeType: ['original', 'compressed'], //图片类型,原图和压缩图

sourceType: ['album', 'camera'], //图片来源,从相册选择还是拍照

success (res) {

// tempFilePath可以作为img标签的src属性显示图片

const tempFilePaths = res.tempFilePaths //返回选择的图片路径

}

})

3.文件的上传与下载:

a.文件上传wx.uploadFile:

概念:将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data

参数:

属性

类型

默认值

是否必填

说明

支持版本

url

string


开发者服务器地址


filePath

string


要上传文件资源的路径


name

string


文件对应的 key,开发者在服务端可以通过这个 key 获取文件的二进制内容


header

Object


HTTP 请求 Header,Header 中不能设置 Referer


formData

Object


HTTP 请求中其他额外的 form data


success

function


接口调用成功的回调函数


fail

function


接口调用失败的回调函数


complete

function


接口调用结束的回调函数(调用成功、失败都会执行)


示例代码:

wx.chooseImage({ //选择一张图片

success (res) {

const tempFilePaths = res.tempFilePaths //选择图片成功后的图片路径

wx.uploadFile({

url: 'https://example.weixin.qq.com/upload', //上传的服务器地址

filePath: tempFilePaths[0], //上传的文件为之前选择的图片

name: 'file', //文件名

formData: {

'user': 'test'

},

success (res){

const data = res.data //上传成功后做的操作

//do something

}

})

}

})


b.文件下载wx.downloadFile:

概念:下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径。

参数:

属性

类型

默认值

是否必填

说明

支持版本

url

string


下载资源的 url


header

Object


HTTP 请求的 Header,Header 中不能设置 Referer


filePath

string


指定文件下载后存储的路径

>= 1.8.0

success

function


接口调用成功的回调函数


fail

function


接口调用失败的回调函数


complete

function


接口调用结束的回调函数(调用成功、失败都会执行)


示例代码:

wx.downloadFile({

url: 'https://example.com/audio/123', //仅为示例,并非真实的资源

success (res) {

// 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容

if (res.statusCode === 200) {

wx.playVoice({

filePath: res.tempFilePath

})

}

}

})


4.WebSocket:

a.什么是WebSocket

连接服务器,与服务器进行信息交互的API

b.使用WebSocket

1.连接服务器wx.connectSocket

示例代码:

wx.connectSocket({

url: 'wss://example.qq.com', //服务器地址,只有这个必填

data:{

x: '',

y: ''

},

header:{

'content-type': 'application/json'

},

protocols: ['protocol1'],

method:"GET"

})

2.向服务器发送信息wx.sendSocketMessage

示例代码:

wx.sendSocketMessage({

data:msg

})

3.关闭连接wx.closeSocket

示例代码:

wx.closeSocket()

c.监听WebSocket

1.wx.onSocketMessage监听WebSocket接收到服务器消息的事件

2.wx.onSocketOpen监听WebSocket 连接打开事件


5.音乐的播放和控制:

a.wx.getBackgroundAudioManager() 获取全局唯一的背景音频管理器。

b.BackgroundAudioManager实例:

backgroundAudioManager.title = '此时此刻' //音频标题(必填)

backgroundAudioManager.epname = '此时此刻' //专辑名

backgroundAudioManager.singer = '许巍' //歌手名

backgroundAudioManager.coverImgUrl = '...url' //封面图URL

backgroundAudioManager.src = '....url' //音乐URL


6.缓存数据:

a.wx.setStorage:将数据存储在本地缓存中指定的 key 中。数据存储上限为10MB

示例:

wx.setStorage({ //异步方式

key:"key",

data:"value"

})

try {

wx.setStorageSync('key', 'value') //同步方式

} catch (e) { }

b.wx.removeStorage:从本地缓存中移除指定Key

示例:

wx.removeStorage({ //异步方式

key: 'key',

})

try {

wx.removeStorageSync('key') //同步方式

} catch (e) {

// Do something when catch error

}

c.wx.getStorage:从本地缓存中异步获取指定 key 的内容

wx.getStorageSync:同步版本

d.wx.getStorageInfo:异步获取当前storage的相关信息

wx.getStorageInfoSync:同步版本

e.wx.clearStorage:清理本地数据缓存

wx.clearStorageSync:同步版本


7.获取当前位置:

a.wx.openLocation:使用微信内置地图查看位置

b.wx.getLocation:获取当前的地理位置

c.wx.chooseLocation:打开地图选择位置

d.综合应用代码:

wx.getLocation({

type: 'gcj02', //返回可以用于wx.openLocation的经纬度

success (res) {

const latitude = res.latitude //获取经纬度

const longitude = res.longitude

wx.openLocation({ //根据获取的经纬度查看位置

latitude,

longitude,

scale: 28 //缩放比例

})

}

})


8.交互:

a.wx.showToast:显示消息提示框

示例:

wx.showToast({

title: '成功', //提示内容

icon: 'success', //图标,有success和loading两种

duration: 2000 //提示的延迟时间

})

注意:wx.showLoading 和 wx.showToast 同时只能显示一个

wx.showToast 应与 wx.hideToast 配对使用

b.wx.showModal:显示模态对话框

示例:

wx.showModal({

title: '提示', //提示的标题

content: '这是一个模态弹窗', //提示的内容

success (res) {

if (res.confirm) {

console.log('用户点击确定')

} else if (res.cancel) {

console.log('用户点击取消')

}

}

})

c.wx.showActionSheet:显示操作菜单

示例:

wx.showActionSheet({

itemList: ['A', 'B', 'C'], //按钮的文字数组

success (res) {

console.log(res.tapIndex) //返回用户点击的按钮序号

},

fail (res) {

console.log(res.errMsg)

}

})


9.导航栏:

a.wx.setNavigationBarTitle:动态设置当前页面的标题

示例:

wx.setNavigationBarTitle({

title: '当前页面'

})

b.wx.showNavigationBarLoading:在当前页面显示导航条加载动画

c.wx.hideNavigationBarLoading:在当前页面隐藏导航条加载动画

d.wx.setNavigationBarColor:设置页面导航条颜色

示例:

wx.setNavigationBarColor({

frontColor: '#ffffff', //前景颜色值,包括按钮、标题、状态栏的颜色,仅支持 #ffffff 和 #000000

backgroundColor: '#ff0000', //背景颜色值,有效值为十六进制颜色

animation: { //动画效果

duration: 400, //动画变化时间

timingFunc: 'easeIn' //动画变化方式(以低速开始)

}

})


10.动画:

a.Animation wx.createAnimation(Object object):创建一个动画实例 animation。调用实例的方法来描述动画。最后通过动画实例的 export 方法导出动画数据传递给组件的 animation 属性。

b.示例代码:

<view animation="{{animationData}}" style="background:red;height:100rpx;width:100rpx"></view>

Page({

data: {

animationData: {}

},

onShow: function(){

var animation = wx.createAnimation({ //创建动画示例

duration: 1000, //动画持续时间

timingFunction: 'ease', //动画以低速开始,然后加快,在结束前变慢

})

this.animation = animation

animation.scale(2,2).rotate(45).step() //动画样式,缩放的同时旋转45度,step表示一组动画完成

this.setData({

animationData:animation.export()

})

相关推荐

教你把多个视频合并成一个视频的方法

一.情况介绍当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。m3u8文件打开后像这样:m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。视频片段像这...

零代码编程:用kimichat合并一个文件夹下的多个文件

一个文件夹里面有很多个srt字幕文件,如何借助kimichat来自动批量合并呢?在kimichat对话框中输入提示词:你是一个Python编程专家,完成如下的编程任务:这个文件夹:D:\downloa...

Java APT_java APT 生成代码

JavaAPT(AnnotationProcessingTool)是一种在Java编译阶段处理注解的工具。APT会在编译阶段扫描源代码中的注解,并根据这些注解生成代码、资源文件或其他输出,...

Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

在我们构建了UnitMesh架构之后,以及对应的demo之后,便着手于实现UnitMesh架构。于是,我们就继续开始UnitRuntime,以用于直接运行AI生成的代码。PS:...

挣脱臃肿的枷锁:为什么说Vert.x是Java开发者手中的一柄利剑?

如果你是一名Java开发者,那么你的职业生涯几乎无法避开Spring。它如同一位德高望重的老国王,统治着企业级应用开发的大片疆土。SpringBoot的约定大于配置、SpringCloud的微服务...

五年后,谷歌还在全力以赴发展 Kotlin

作者|FredericLardinois译者|Sambodhi策划|Tina自2017年谷歌I/O全球开发者大会上,谷歌首次宣布将Kotlin(JetBrains开发的Ja...

kotlin和java开发哪个好,优缺点对比

Kotlin和Java都是常见的编程语言,它们有各自的优缺点。Kotlin的优点:简洁:Kotlin程序相对于Java程序更简洁,可以减少代码量。安全:Kotlin在类型系统和空值安全...

移动端架构模式全景解析:从MVC到MVVM,如何选择最佳设计方案?

掌握不同架构模式的精髓,是构建可维护、可测试且高效移动应用的关键。在移动应用开发中,选择合适的软件架构模式对项目的可维护性、可测试性和团队协作效率至关重要。随着应用复杂度的增加,一个良好的架构能够帮助...

颜值非常高的XShell替代工具Termora,不一样的使用体验!

Termora是一款面向开发者和运维人员的跨平台SSH终端与文件管理工具,支持Windows、macOS及Linux系统,通过一体化界面简化远程服务器管理流程。其核心定位是解决多平台环境下远程连接、文...

预处理的底层原理和预处理编译运行异常的解决方案

若文章对您有帮助,欢迎关注程序员小迷。助您在编程路上越走越好![Mac-10.7.1LionIntel-based]Q:预处理到底干了什么事情?A:预处理,顾名思义,预先做的处理。源代码中...

为“架构”再建个模:如何用代码描述软件架构?

在架构治理平台ArchGuard中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在ArchGuard中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个...

深度解析:Google Gemma 3n —— 移动优先的轻量多模态大模型

2025年6月,Google正式发布了Gemma3n,这是一款能够在2GB内存环境下运行的轻量级多模态大模型。它延续了Gemma家族的开源基因,同时在架构设计上大幅优化,目标是让...

比分网开发技术栈与功能详解_比分网有哪些

一、核心功能模块一个基本的比分网通常包含以下模块:首页/总览实时比分看板:滚动展示所有正在进行的比赛,包含比分、比赛时间、红黄牌等关键信息。热门赛事/焦点战:突出显示重要的、关注度高的比赛。赛事导航...

设计模式之-生成器_一键生成设计

一、【概念定义】——“分步构建复杂对象,隐藏创建细节”生成器模式(BuilderPattern):一种“分步构建型”创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建...

构建第一个 Kotlin Android 应用_kotlin简介

第一步:安装AndroidStudio(推荐IDE)AndroidStudio是官方推荐的Android开发集成开发环境(IDE),内置对Kotlin的完整支持。1.下载And...