ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

uni-app【API概述】

2021-12-11 10:02:45  阅读:359  来源: 互联网

标签:res app 说明 获取 API uni 监听


uni-app API概述

uni-app的js API由标准ECMAScript的js API 和 uni 扩展 API 这两部分组成。

标准ECMAScript的js仅是最基础的js。浏览器基于它扩展了window、document、navigator等对象。小程序也基于标准js扩展了各种wx.xx、my.xx、swan.xx的API。node也扩展了fs等模块。

uni-app基于ECMAScript扩展了uni对象,并且API命名与小程序保持兼容。

标准js和浏览器js的区别

uni-app的js代码,h5端运行于浏览器中。非h5端(包含小程序和App),Android平台运行在v8引擎中,iOS平台运行在iOS自带的jscore引擎中,都没有运行在浏览器或webview里。

非H5端,虽然不支持window、document、navigator等浏览器的js API,但也支持标准ECMAScript。

请注意不要把浏览器里的js扩展对象等价于标准js。

所以uni-app的非H5端,一样支持标准js,支持if、for等语法,支持字符串、数组、时间等变量及各种处理方法。仅仅是不支持window、document等浏览器专用对象。

各端特色API调用

除了uni-app框架内置的跨端API,各端自己的特色API也可通过条件编译自由使用。

各端特色API规范参考各端的开发文档。其中App端的JS API参考html5plus.org;uni-app也支持通过扩展原生插件来丰富App端的开发能力,具体参考插件开发文档

各平台的API新增,不需要uni-app升级,开发者就可以直接使用。

说明

  • uni.on 开头的 API 是监听某个事件发生的 API 接口,接受一个 CALLBACK 函数作为参数。当该事件触发时,会调用 CALLBACK 函数。
  • 如未特殊约定,其他 API 接口都接受一个 OBJECT 作为参数。
  • OBJECT 中可以指定 success,fail,complete 来接收接口调用结果。
  • 平台差异说明若无特殊说明,则表示所有平台均支持。

API Promise 化

  1. 具体 API Promise 化 的策略:

    • 异步的方法,如果不传入 success、fail、complete 等 callback 参数,将以 Promise 返回数据。例如:uni.getImageInfo()

    • 异步的方法,且有返回对象,如果希望获取返回对象,必须至少传入一项 success、fail、complete 等 callback 参数。例如:

      	// 正常使用
      	const task = uni.connectSocket(
      		success(res){
      			console.log(res)
      		}
      	)
      
      	// Promise 化
      	uni.connectSocket().then(res => {
      			// 此处即为 success 回调的 res
      			// 如果想获取 task ,则不要使用 Promise 化
      			console.log(res)
      	})
      
  2. 不进行 Promise 化 的 API:

    • 同步的方法(即以 sync 结束)。例如:uni.getSystemInfoSync()
    • 以 create 开头的方法。例如:uni.createMapContext()
    • 以 manager 结束的方法。例如:uni.getBackgroundAudioManager()

Vue 2 和 Vue 3 的 API Promise 化

返回结果不一致,以下为 不同点互相转换

Vue 2

对部分 API 进行了 Promise 封装,返回数据的第一个参数是错误对象,第二个参数是返回数据。

使用示例:

// 默认方式
uni.request({
	url: 'https://www.example.com/request',
	success: (res) => {
		console.log(res.data);
	},
	fail:(err) => {
		console.error(err)
	}
});

// Promise
uni.request({
		url: 'https://www.example.com/request'
	})
	.then(data => {
		// data为一个数组
		// 数组第一项为错误信息 即为 fail 回调
		// 第二项为返回数据
		var [err, res]  = data;
        console.log(res.data);
	})

// Await
async function request () {
	var [err, res] = await uni.request({
		url: 'https://www.example.com/request'
	});
	console.log(res.data);
}

Vue 3

对部分 API 进行了 Promise 封装,调用成功会进入 then 方法 回调。调用失败会进入 catch 方法 回调

使用示例:

// 默认方式
uni.request({
	url: 'https://www.example.com/request',
	success: (res) => {
		console.log(res.data);
	},
	fail:(err) => {
		console.error(err)
	}
});

// 使用 Promise then/catch 方式调用
uni.request({
		url: 'https://www.example.com/request'
	})
	.then(res => {
		// 此处的 res 参数,与使用默认方式调用时 success 回调中的 res 参数一致
		console.log(res.data);
	})
	.catch(err => {
		// 此处的 err 参数,与使用默认方式调用时 fail 回调中的 err 参数一致
		console.error(err)
	})

// 使用 Await/Await 方式调用
async function request () {
	try{
		var res = await uni.request({
			url: 'https://www.example.com/request'
		});
		// 此处的 res 参数,与使用默认方式调用时 success 回调中的 res 参数一致
		console.log(res);
	} catch (err) {
		// 此处的 err 参数,与使用默认方式调用时 fail 回调中的 err 参数一致
		console.error(err)
	}
}

Vue 2 写法转 Vue 3 写法

// 在 main.js 中写入以下代码即可
function isPromise (obj) {
  return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'
}

uni.addInterceptor({
  returnValue (res) {
    if (!isPromise(res)) {
      return res
    }
    return new Promise((resolve, reject) => {
      res.then(res => {
        if (res[0]) {
          reject(res[0])
        } else {
          resolve(res[1])
        }
      })
    })
  }
})

Vue 3 写法转 Vue 2 写法

// 在 main.js 中写入以下代码即可
function isPromise (obj) {
  return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'
}

uni.addInterceptor({
	returnValue(res) {
		if (!isPromise(res)) {
			return res
		}
		const returnValue = [undefined, undefined]
		return res
			.then((res) => {
				returnValue[1] = res
			})
			.catch((err) => {
				returnValue[0] = err
			})
			.then(() => returnValue)
	}
})

API 列表

网络

发起请求
API说明
uni.request发起网络请求
上传、下载
API说明
uni.uploadFile上传文件
uni.downloadFile下载文件
WebSocket
API说明
uni.connectSocket创建 WebSocket 连接
uni.onSocketOpen监听 WebSocket 打开
uni.onSocketError监听 WebSocket 错误
uni.sendSocketMessage发送 WebSocket 消息
uni.onSocketMessage接受 WebSocket 消息
uni.closeSocket关闭 WebSocket 连接
uni.onSocketClose监听 WebSocket 关闭
SocketTask
API说明
SocketTask.send通过 WebSocket 连接发送数据
SocketTask.close关闭 WebSocket 连接
SocketTask.onOpen监听 WebSocket 连接打开事件
SocketTask.onClose监听 WebSocket 连接关闭事件
SocketTask.onError监听 WebSocket 错误事件
SocketTask.onMessage监听 WebSocket 接受到服务器的消息事件

媒体

图片
API说明
uni.chooseImage从相册选择图片,或者拍照
uni.previewImage预览图片
uni.closePreviewImage关闭预览图片
uni.getImageInfo获取图片信息
uni.saveImageToPhotosAlbum保存图片到系统相册
文件
API说明
uni.chooseFile从本地选择文件
录音管理
API说明
uni.getRecorderManager录音管理
背景音频播放管理
API说明
uni.getBackgroundAudioManager背景音频播放管理
音频组件管理
API说明
uni.createInnerAudioContext音频组件管理
视频
API说明
uni.chooseVideo从相册选择视频,或者拍摄
uni.chooseMedia拍摄或从手机相册中选择图片或视频。
uni.saveVideoToPhotosAlbum保存视频到系统相册
uni.createVideoContext视频组件管理
相机组件管理
API说明
uni.createCameraContext相机组件管理
直播组件管理
API说明
uni.createLivePlayerContext直播组件管理

文件

API说明
uni.saveFile保存文件
uni.getSavedFileList获取已保存的文件列表
uni.getSavedFileInfo获取已保存的文件信息
uni.removeSavedFile删除已保存的文件信息
uni.getFileInfo获取文件信息
uni.openDocument打开文件

数据缓存

API说明
uni.getStorage获取本地数据缓存
uni.getStorageSync获取本地数据缓存
uni.setStorage设置本地数据缓存
uni.setStorageSync设置本地数据缓存
uni.getStorageInfo获取本地缓存的相关信息
uni.getStorageInfoSync获取本地缓存的相关信息
uni.removeStorage删除本地缓存内容
uni.removeStorageSync删除本地缓存内容
uni.clearStorage清理本地数据缓存
uni.clearStorageSync清理本地数据缓存

位置

获取位置
API说明
uni.getLocation获取当前位置
uni.chooseLocation打开地图选择位置
查看位置
API说明
uni.openLocation打开内置地图
地图组件控制
API说明
uni.createMapContext地图组件控制

设备

系统信息
API说明
uni.getSystemInfo获取系统信息
uni.getSystemInfoSync获取系统信息
uni.canIUse判断应用的 API,回调,参数,组件等是否在当前版本可用
内存
API说明
uni.onMemoryWarning监听内存不足告警事件
网络状态
API说明
uni.getNetworkType获取网络类型
uni.onNetworkStatusChange监听网络状态变化
uni.offNetworkStatusChange取消监听网络状态变化
加速度计
API说明
uni.onAccelerometerChange监听加速度数据
uni.offAccelerometerChange取消监听加速度数据
uni.startAccelerometer开始监听加速度数据
uni.stopAccelerometer停止监听加速度数据
罗盘
API说明
uni.onCompassChange监听罗盘数据
uni.offCompassChange取消监听罗盘数据
uni.startCompass开始监听罗盘数据
uni.stopCompass停止监听罗盘数据
陀螺仪
API说明
uni.onGyroscopeChange监听陀螺仪数据
uni.startGyroscope开始监听陀螺仪数据
uni.stopGyroscope停止监听陀螺仪数据
拨打电话
API说明
uni.makePhoneCall拨打电话
扫码
API说明
uni.scanCode扫码
剪切板
API说明
uni.setClipboardData设置剪贴板内容
uni.getClipboardData获取剪贴板内容
屏幕亮度
API说明
uni.setScreenBrightness设置屏幕亮度
uni.getScreenBrightness获取屏幕亮度
uni.setKeepScreenOn设置是否保持常亮状态
用户截屏事件
API说明
uni.onUserCaptureScreen监听用户截屏事件
振动
API说明
uni.vibrate使手机发生振动
uni.vibrateLong使手机发生较长时间的振动
uni.vibrateShort使手机发生较短时间的振动
手机联系人
API说明
uni.addPhoneContact添加手机通讯录
蓝牙
API说明
uni.openBluetoothAdapter初始化蓝牙模块
uni.startBluetoothDevicesDiscovery搜寻附近的蓝牙外围设备
uni.onBluetoothDeviceFound监听寻找到新设备的事件
uni.stopBluetoothDevicesDiscovery停止搜寻
uni.onBluetoothAdapterStateChange监听蓝牙适配器状态变化事件
uni.getConnectedBluetoothDevices根据 uuid 获取处于已连接状态的设备
uni.getBluetoothDevices获取已发现的蓝牙设备
uni.getBluetoothAdapterState获取本机蓝牙适配器状态
uni.closeBluetoothAdapter关闭蓝牙模块
低耗蓝牙
API说明
uni.writeBLECharacteristicValue向低功耗蓝牙设备特征值中写入二进制数据
uni.readBLECharacteristicValue读取低功耗蓝牙设备的特征值的二进制数据值
uni.onBLEConnectionStateChange监听低功耗蓝牙连接状态的改变事件
uni.onBLECharacteristicValueChange监听低功耗蓝牙设备的特征值变化事件
uni.notifyBLECharacteristicValueChange启用蓝牙低功耗设备特征值变化时的 notify 功能,订阅特征
uni.getBLEDeviceServices获取蓝牙设备所有服务(service)
uni.getBLEDeviceCharacteristics获取蓝牙设备某个服务中所有特征值(characteristic)
uni.createBLEConnection连接低功耗蓝牙设备
uni.closeBLEConnection断开与低功耗蓝牙设备的连接
iBeacon
API说明
uni.onBeaconServiceChange监听 iBeacon 服务状态变化事件
uni.onBeaconUpdate监听 iBeacon 设备更新事件
uni.getBeacons获取所有已搜索到的 iBeacon 设备
uni.startBeaconDiscovery停止搜索附近的 iBeacon 设备
uni.stopBeaconDiscovery开始搜索附近的 iBeacon 设备
生物认证
API说明
uni.startSoterAuthentication开始生物认证
uni.checkIsSupportSoterAuthentication获取本机支持的生物认证方式
uni.checkIsSoterEnrolledInDevice获取设备内是否录入如指纹等生物信息的接口

界面

交互反馈
API说明
uni.showToast显示提示框
uni.showLoading显示加载提示框
uni.hideToast隐藏提示框
uni.hideLoading隐藏加载提示框
uni.showModal显示模态弹窗
uni.showActionSheet显示菜单列表
设置导航条
API说明
uni.setNavigationBarTitle设置当前页面标题
uni.setNavigationBarColor设置页面导航条颜色
uni.showNavigationBarLoading显示导航条加载动画
uni.hideNavigationBarLoading隐藏导航条加载动画
设置TabBar
API说明
uni.setTabBarItem动态设置 tabBar 某一项的内容
uni.setTabBarStyle动态设置 tabBar 的整体样式
uni.hideTabBar隐藏 tabBar
uni.showTabBar显示 tabBar
uni.setTabBarBadge为 tabBar 某一项的右上角添加文本
uni.removeTabBarBadge移除 tabBar 某一项右上角的文本
uni.showTabBarRedDot显示 tabBar 某一项的右上角的红点
uni.hideTabBarRedDot隐藏 tabBar 某一项的右上角的红点
背景
API说明
uni.setBackgroundColor动态设置窗口的背景色。
uni.setBackgroundTextStyle动态设置下拉背景字体、loading 图的样式。
动画
API说明
uni.createAnimation创建一个动画实例 animation。调用实例的方法来描述动画。最后通过动画实例的export方法导出动画数据传递给组件的animation属性。
滚动
API说明
uni.pageScrollTo将页面滚动到目标位置。
绘画
API说明
uni.createCanvasContext创建绘图上下文
uni.canvasToTempFilePath将画布内容保存成文件
uni.canvasGetImageData获取画布图像数据
uni.canvasPutImageData设置画布图像数据
下拉刷新
API说明
onPullDownRefresh监听该页面用户下拉刷新事件
uni.startPullDownRefresh开始下拉刷新
uni.stopPullDownRefresh停止当前页面下拉刷新
节点信息
API说明
uni.createSelectorQuery创建查询请求
selectorQuery.select根据选择器选择单个节点
selectorQuery.selectAll根据选择器选择全部节点
selectorQuery.selectViewport选择显示区域
selectorQuery.exec执行查询请求
nodesRef.boundingClientRect获取布局位置和尺寸
nodesRef.scrollOffset获取滚动位置
nodesRef.fields获取任意字段
节点布局相交状态
API说明
uni.createIntersectionObserver创建 IntersectionObserver 对象
intersectionObserver.relativeTo指定参照节点
intersectionObserver.relativeToViewport指定页面显示区域作为参照区域
intersectionObserver.observe指定目标节点并开始监听
intersectionObserver.disconnect停止监听

路由

API说明
uni.navigateTo保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面
uni.redirectTo关闭当前页面,跳转到应用内的某个页面
uni.reLaunch关闭所有页面,打开到应用内的某个页面
uni.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
uni.navigateBack关闭当前页面,返回上一页面或多级页面

第三方服务

API说明
uni.getProvider获取服务供应商
uni.login登录
uni.getUserInfo获取用户信息
uni.getuserprofile获取用户信息。每次请求都会弹出授权窗口,用户同意后返回 userInfo
uni.checkSession检查登录状态是否过期
uni.preLogin预登录
uni.closeAuthView关闭一键登录页面
uni.getCheckBoxState获取一键登录条款勾选框状态
uni.getUniverifyManager获取全局唯一的一键登录管理器 univerifyManager
uni.share分享
uni.shareWithSystem使用系统分享
uni.requestPayment支付
uni.subscribePush开启推送
uni.unsubscribePush关闭推送
uni.onPush监听透传数据
uni.offPush移除监听透传数据

平台扩展

API说明
uni.requireNativePlugin引入 App 原生插件

其他

授权
API说明
uni.authorize提前向用户发起授权请求
设置
API说明
uni.openSetting调起客户端小程序设置界面,返回用户设置的操作结果。
uni.getSetting获取用户的当前设置。
收货地址
API说明
uni.chooseAddress获取用户收货地址
获取发票抬头
API说明
uni.chooseInvoiceTitle选择用户的发票抬头,需要用户授权 scope.invoiceTitle。
小程序跳转
API说明
uni.navigateToMiniProgram打开另一个小程序。
uni.navigateBackMiniProgram跳转回上一个小程序,只有当另一个小程序跳转到当前小程序时才会能调用成功。
模板消息
API说明
addTemplate组合模板并添加至帐号下的个人模板库。
deleteTemplate删除帐号下的某个模板。
getTemplateLibraryById获取模板库某个模板标题下关键词库。
getTemplateLibraryList获取APP模板库标题列表
getTemplateList获取帐号下已存在的模板列表。
sendTemplateMessage发送模板消息
alipay.open.app.mini.templatemessage.send支付宝小程序通过 openapi 给用户触达消息,主要为支付后的触达(通过消费id)和用户提交表单后的触达(通过formId)。
小程序更新
API说明
uni.getUpdateManager返回全局唯一的版本更新管理器对象: updateManager,用于管理小程序更新。
调试
API说明
uni.setEnableDebug设置是否打开调试开关。此开关对正式版也能生效。
获取第三方平台数据
API说明
uni.getExtConfig获取第三方平台自定义的数据字段。
uni.getExtConfigSyncuni.getExtConfig 的同步版本。

标签:res,app,说明,获取,API,uni,监听
来源: https://blog.csdn.net/qq_39765048/article/details/121868524

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有