【微信小程序】05 设备信息 & 请求API
获取系统信息(设备信息)
https://developers.weixin.qq.com/miniprogram/dev/api/base/system/wx.getSystemInfo.html
分为同步方法和异步方法
Object wx.getSystemInfoSync()
以 Promise 风格 调用:支持
小程序插件:支持,需要小程序基础库版本不低于 1.9.6
微信 Windows 版:支持
微信 Mac 版:支持
wx.getSystemInfo 的同步版本
返回值
Object res
| 属性 | 类型 | 说明 | 最低版本 |
|---|---|---|---|
| brand | string | 设备品牌 | 1.5.0 |
| model | string | 设备型号。新机型刚推出一段时间会显示unknown,微信会尽快进行适配。 | |
| pixelRatio | number | 设备像素比 | |
| screenWidth | number | 屏幕宽度,单位px | 1.1.0 |
| screenHeight | number | 屏幕高度,单位px | 1.1.0 |
| windowWidth | number | 可使用窗口宽度,单位px | |
| windowHeight | number | 可使用窗口高度,单位px | |
| statusBarHeight | number | 状态栏的高度,单位px | 1.9.0 |
| language | string | 微信设置的语言 | |
| version | string | 微信版本号 | |
| system | string | 操作系统及版本 | |
| platform | string | 客户端平台 | |
| fontSizeSetting | number | 用户字体大小(单位px)。以微信客户端「我-设置-通用-字体大小」中的设置为准 | 1.5.0 |
| SDKVersion | string | 客户端基础库版本 | 1.1.0 |
| benchmarkLevel | number | 设备性能等级(仅 Android)。取值为:-2 或 0(该设备无法运行小游戏),-1(性能未知),>=1(设备性能值,该值越高,设备性能越好,目前最高不到50) | 1.8.0 |
| albumAuthorized | boolean | 允许微信使用相册的开关(仅 iOS 有效) | 2.6.0 |
| cameraAuthorized | boolean | 允许微信使用摄像头的开关 | 2.6.0 |
| locationAuthorized | boolean | 允许微信使用定位的开关 | 2.6.0 |
| microphoneAuthorized | boolean | 允许微信使用麦克风的开关 | 2.6.0 |
| notificationAuthorized | boolean | 允许微信通知的开关 | 2.6.0 |
| notificationAlertAuthorized | boolean | 允许微信通知带有提醒的开关(仅 iOS 有效) | 2.6.0 |
| notificationBadgeAuthorized | boolean | 允许微信通知带有标记的开关(仅 iOS 有效) | 2.6.0 |
| notificationSoundAuthorized | boolean | 允许微信通知带有声音的开关(仅 iOS 有效) | 2.6.0 |
| bluetoothEnabled | boolean | 蓝牙的系统开关 | 2.6.0 |
| locationEnabled | boolean | 地理位置的系统开关 | 2.6.0 |
| wifiEnabled | boolean | Wi-Fi 的系统开关 | 2.6.0 |
| safeArea | Object | 在竖屏正方向下的安全区域 | 2.7.0 |
| locationReducedAccuracy | boolean | true 表示模糊定位,false 表示精确定位,仅 iOS 支持 |
|
| theme | string | 系统当前主题,取值为light或dark,全局配置"darkmode":true时才能获取,否则为 undefined (不支持小游戏) |
2.11.0 |
| host | Object | 当前小程序运行的宿主环境 | 2.12.3 |
| enableDebug | boolean | 是否已打开调试。可通过右上角菜单或 wx.setEnableDebug 打开调试。 | 2.15.0 |
| deviceOrientation | string | 设备方向 |
页面交互API:
https://developers.weixin.qq.com/miniprogram/dev/api/ui/interaction/wx.showToast.html
提示信息:
wx.showToast(Object object)
以 Promise 风格 调用:支持
小程序插件:支持,需要小程序基础库版本不低于 1.9.6
显示消息提示框
参数
Object object
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
|---|---|---|---|---|---|
| title | string | 是 | 提示的内容 | ||
| icon | string | success | 否 | 图标 | |
| image | string | 否 | 自定义图标的本地路径,image 的优先级高于 icon | 1.1.0 | |
| duration | number | 1500 | 否 | 提示的延迟时间 | |
| mask | boolean | false | 否 | 是否显示透明蒙层,防止触摸穿透 | |
| success | function | 否 | 接口调用成功的回调函数 | ||
| fail | function | 否 | 接口调用失败的回调函数 | ||
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.icon 的合法值
| 值 | 说明 | 最低版本 |
|---|---|---|
| success | 显示成功图标,此时 title 文本最多显示 7 个汉字长度 | |
| error | 显示失败图标,此时 title 文本最多显示 7 个汉字长度 | |
| loading | 显示加载图标,此时 title 文本最多显示 7 个汉字长度 | |
| none | 不显示图标,此时 title 文本最多可显示两行,1.9.0及以上版本支持 |
示例代码
wx.showToast({
title: '成功',
icon: 'success',
duration: 2000
})
注意
- wx.showLoading 和 wx.showToast 同时只能显示一个
- wx.showToast 应与 wx.hideToast 配对使用
相关回答
显示加载
https://developers.weixin.qq.com/miniprogram/dev/api/ui/interaction/wx.showLoading.html
wx.showLoading(Object object)
基础库 1.1.0 开始支持,低版本需做兼容处理。
以 Promise 风格 调用:支持
小程序插件:支持,需要小程序基础库版本不低于 1.9.6
显示 loading 提示框。需主动调用 wx.hideLoading 才能关闭提示框
参数
Object object
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| title | string | 是 | 提示的内容 | |
| mask | boolean | false | 否 | 是否显示透明蒙层,防止触摸穿透 |
| success | function | 否 | 接口调用成功的回调函数 | |
| fail | function | 否 | 接口调用失败的回调函数 | |
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
wx.showLoading({
title: '加载中',
})
setTimeout(function () {
wx.hideLoading()
}, 2000)
注意
- wx.showLoading 和 wx.showToast 同时只能显示一个
- wx.showLoading 应与 wx.hideLoading 配对使用
微信,网络请求:
https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html
RequestTask wx.request(Object object)
以 Promise 风格 调用:不支持
小程序插件:支持,需要小程序基础库版本不低于 1.9.6
发起 HTTPS 网络请求。使用前请注意阅读相关说明。
参数
Object object
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
|---|---|---|---|---|---|
| url | string | 是 | 开发者服务器接口地址 | ||
| data | string/object/ArrayBuffer | 否 | 请求的参数 | ||
| header | Object | 否 | 设置请求的 header,header 中不能设置 Referer。content-type 默认为 application/json |
||
| timeout | number | 否 | 超时时间,单位为毫秒 | 2.10.0 | |
| method | string | GET | 否 | HTTP 请求方法 | |
| dataType | string | json | 否 | 返回的数据格式 | |
| responseType | string | text | 否 | 响应的数据类型 | 1.7.0 |
| enableHttp2 | boolean | false | 否 | 开启 http2 | 2.10.4 |
| enableQuic | boolean | false | 否 | 开启 quic | 2.10.4 |
| enableCache | boolean | false | 否 | 开启 cache | 2.10.4 |
| success | function | 否 | 接口调用成功的回调函数 | ||
| fail | function | 否 | 接口调用失败的回调函数 | ||
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.method 的合法值
| 值 | 说明 | 最低版本 |
|---|---|---|
| OPTIONS | HTTP 请求 OPTIONS | |
| GET | HTTP 请求 GET | |
| HEAD | HTTP 请求 HEAD | |
| POST | HTTP 请求 POST | |
| PUT | HTTP 请求 PUT | |
| DELETE | HTTP 请求 DELETE | |
| TRACE | HTTP 请求 TRACE | |
| CONNECT | HTTP 请求 CONNECT |
object.dataType 的合法值
| 值 | 说明 | 最低版本 |
|---|---|---|
| json | 返回的数据为 JSON,返回后会对返回的数据进行一次 JSON.parse | |
| 其他 | 不对返回的内容进行 JSON.parse |
object.responseType 的合法值
| 值 | 说明 | 最低版本 |
|---|---|---|
| text | 响应的数据为文本 | |
| arraybuffer | 响应的数据为 ArrayBuffer |
object.success 回调函数
参数
Object res
| 属性 | 类型 | 说明 | 最低版本 |
|---|---|---|---|
| data | string/Object/Arraybuffer | 开发者服务器返回的数据 | |
| statusCode | number | 开发者服务器返回的 HTTP 状态码 | |
| header | Object | 开发者服务器返回的 HTTP Response Header | 1.2.0 |
| cookies | Array.<string> | 开发者服务器返回的 cookies,格式为字符串数组 | 2.10.0 |
| profile | Object | 网络请求过程中一些调试信息 | 2.10.4 |
res.profile 的结构
| 属性 | 类型 | 说明 |
|---|---|---|
| redirectStart | number | 第一个 HTTP 重定向发生时的时间。有跳转且是同域名内的重定向才算,否则值为 0 |
| redirectEnd | number | 最后一个 HTTP 重定向完成时的时间。有跳转且是同域名内部的重定向才算,否则值为 0 |
| fetchStart | number | 组件准备好使用 HTTP 请求抓取资源的时间,这发生在检查本地缓存之前 |
| domainLookupStart | number | DNS 域名查询开始的时间,如果使用了本地缓存(即无 DNS 查询)或持久连接,则与 fetchStart 值相等 |
| domainLookupEnd | number | DNS 域名查询完成的时间,如果使用了本地缓存(即无 DNS 查询)或持久连接,则与 fetchStart 值相等 |
| connectStart | number | HTTP(TCP) 开始建立连接的时间,如果是持久连接,则与 fetchStart 值相等。注意如果在传输层发生了错误且重新建立连接,则这里显示的是新建立的连接开始的时间 |
| connectEnd | number | HTTP(TCP) 完成建立连接的时间(完成握手),如果是持久连接,则与 fetchStart 值相等。注意如果在传输层发生了错误且重新建立连接,则这里显示的是新建立的连接完成的时间。注意这里握手结束,包括安全连接建立完成、SOCKS 授权通过 |
| SSLconnectionStart | number | SSL建立连接的时间,如果不是安全连接,则值为 0 |
| SSLconnectionEnd | number | SSL建立完成的时间,如果不是安全连接,则值为 0 |
| requestStart | number | HTTP请求读取真实文档开始的时间(完成建立连接),包括从本地读取缓存。连接错误重连时,这里显示的也是新建立连接的时间 |
| requestEnd | number | HTTP请求读取真实文档结束的时间 |
| responseStart | number | HTTP 开始接收响应的时间(获取到第一个字节),包括从本地读取缓存 |
| responseEnd | number | HTTP 响应全部接收完成的时间(获取到最后一个字节),包括从本地读取缓存 |
| rtt | number | 当次请求连接过程中实时 rtt |
| estimate_nettype | string | 评估的网络状态 slow 2g/2g/3g/4g |
| httpRttEstimate | number | 协议层根据多个请求评估当前网络的 rtt(仅供参考) |
| transportRttEstimate | number | 传输层根据多个请求评估的当前网络的 rtt(仅供参考) |
| downstreamThroughputKbpsEstimate | number | 评估当前网络下载的kbps |
| throughputKbps | number | 当前网络的实际下载kbps |
| peerIP | string | 当前请求的IP |
| port | number | 当前请求的端口 |
| socketReused | boolean | 是否复用连接 |
| sendBytesCount | number | 发送的字节数 |
| receivedBytedCount | number | 收到字节数 |
| protocol | string | 使用协议类型,有效值:http1.1, h2, quic, unknown |
返回值
RequestTask
基础库 1.4.0 开始支持,低版本需做兼容处理。
请求任务对象
data 参数说明
最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:
- 对于
GET方法的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...) - 对于
POST方法且header['content-type']为application/json的数据,会对数据进行 JSON 序列化 - 对于
POST方法且header['content-type']为application/x-www-form-urlencoded的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)
示例代码
wx.request({
url: 'example.php', //仅为示例,并非真实的接口地址
data: {
x: '',
y: ''
},
header: {
'content-type': 'application/json' // 默认值
},
success (res) {
console.log(res.data)
}
})
【微信小程序】05 设备信息 & 请求API的更多相关文章
- 微信小程序 --- 获取设备信息
获取设备信息: wx.getSystemInfo model:手机型号 pixelRatio:设备像素比 windowWidth:窗口宽度 windowHeight:窗口高度 language:语言 ...
- 微信小程序城市定位(百度地图API)
概述 微信小程序提供一些API(地址)用于获取当前用户的地理位置等信息,但无论是wx.getLocation,还是wx.chooseLocation均没有单独的字段表示国家与城市信息,仅有经纬度信息. ...
- 微信小程序的ajax数据请求wx.request
微信小程序的ajax数据请求,很多同学找不到api在哪个位置,这里单独把小程序的ajax请求给列出来,微信小程序的请求就是wx.request这个api,wx.request(一些对象参数),微信小程 ...
- 图解微信小程序---获取电影信息
图解微信小程序---获取电影信息 代码笔记 第一步:编写js文件,调用api获取相对应电影详情信息(注意带入的参数是id不在是榜单的type,电影api的movie后面又斜杠,别忘了,对应的绑定数据的 ...
- 微信小程序request(ajax)接口请求封装
微信小程序request(ajax)接口请求封装 最近在进行小程序的编写,需要调用后端接口,经常要用到wx.request方法,所以就自己封装了一下,简化一下代码,如果能给大家提供帮助更好,在封装的时 ...
- 微信小程序 获取用户信息并保存登录状态
微信小程序 获取用户信息并保存登录状态:http://www.360doc.com/content/18/0124/11/9200790_724662071.shtml
- (八)微信小程序---获取定位信息chooseLocation
微信小程序---获取定位信息 chooseLocation wxml <view bindtap="getlocalPath">{{localPath}}</v ...
- Laravel wxxcx 微信小程序获取用户信息
wxxcx 是Laravel5微信小程序登录获取用户信息扩展 部署 12345678 # 安装$ composer require iwanli/wxxcx# 注册服务# 在 /config/app. ...
- 微信小程序开发——使用mock数据模拟api请求
前言: 微信小程序开发中,后端提供了接口设计文档,前端可以先mock数据模拟api请求进行开发调试,而且可以根据需要设计mock文件的格式和内容,这样在后端接口开发完成之前,前端可以最大限度的完成前端 ...
- 微信小程序入门教程之四:API 使用
今天是这个系列教程的最后一篇. 上一篇教程介绍了,小程序页面如何使用 JavaScript 脚本.有了脚本以后,就可以调用微信提供的各种能力(即微信 API),从而做出千变万化的页面.本篇就介绍怎么使 ...
随机推荐
- GNU GDB
1 说明 本文主要介绍一些简单的.常用的gdb调试技巧. 环境:GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1) 参考文档:<gdb ...
- promise async 和 await
// promise 是专门用于解决回调地狱的 // 专门用于执行异步程序时使用promise语法 // 语法形式: // ...
- FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
XviD是个开源的视频编解码器,它与DivX一同被纳入MPEG-4规范第二部分的视频标准,但DivX并未开源.早期的MP4视频大多采用XviD或者DivX编码,当时的视频格式被称作MPEG-4.现在 ...
- 《Android开发卷——ListView嵌套GridView(基础)》
listview嵌套gridview,最主要应该解决的问题是listview跟GridView的滑动问题.这个利用GridView是自定义的,就是让GridView内容有多大就显示多大,然后禁用他 ...
- perfers-color-scheme 使用简单介绍
perfers-color-scheme 简介 prefers-color-scheme 媒体查询属性用于检测用户操作系统是否使用深色模式. 属性值 dark 表示用户操作系统使用深色模式 light ...
- 基于Web3.0的区块链图片上传
开始前,我们先简单了解一下基本的概念,我大致归纳为以下几个点 什么是Web3.0,和区块链又有什么关系?(上回的文章不就派上用场了) 需求:开发一个基于Python的Web 3.0图片上传系统.这个系 ...
- radis简单学习笔记
原来写接口只用了本机缓存cache 来学习一下radis,用法应该跟cache一样吧,为了配套负载均衡的多服务器是多个服务器都可以读取缓存 一.下载 找了好长时间 github有的时候能上有的时候就上 ...
- Linux 使用 Swap分区
Linux 使用 Swap分区 背景 买的云服务器在使用的时候,资源经常不够,因此需要使用swap分区. Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序 ...
- 基于SQLite3的C学习总结
背景 针对 SQLite3 的学习总结 arm linux 移植 SQLite 3 如何在 Linux 上移植使用 SQLite3,标题虽然是在讲 arm linux,但实际上是跨平台的. 基于 SQ ...
- uniapp+thinkphp5实现微信扫码支付(APP支付)
前言 统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口.下面介绍的是其中APP的支付的配置与实现流程 配置 1.首先登录 ...