1. 什么是uniapp
Uni-app是一款可兼容多个平台的开发框架,开发者使用它可以在各种平台(包括iOS、Android、H5等)上开发移动应用。它基于vue.js框架,可实现一次编写,多端发布。
Uni-app框架的特点:
一次开发,多端部署。
可直接运行于微信小程序、H5、APP原生容器,节省了开发者针对多端发布的前期繁琐配置和开发成本。
基于Vue.js精髓,开发者编写的代码可重复使用,提高代码的可维护性。
支持自定义扩展,开发者可自定义自己所需的功能和插件。
2. uniapp可以调用哪些硬件
Uni-app通过封装了设备相关的API来实现访问手机硬件。以下是uniapp能够调用的硬件设备列表:
2.1 手机摄像头
Uni-app提供了uni.chooseImage以及uni.chooseVideo等API,可以调用手机的摄像头和相册,实现对图片、视频的选择和上传操作。
uni.chooseImage({
count: 1, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], //可以指定来源是相册还是相机,默认二者都有
success: function (res) {
//上传图片接口
var tempFilePaths = res.tempFilePaths;
}
});
2.2 手机通信录、位置信息
Uni-app提供了uni.chooseContact和uni.getLocation等API,可以实现对手机通信录和位置信息的读取匹配。
uni.chooseContact({
success: function (res) {
console.log('选择联系人的编号:' + res.contactIndex);
console.log('选择的联系人信息:' + JSON.stringify(res));
}
});
2.3 手机蓝牙、NFC
Uni-app提供了uni.startBluetoothDevicesDiscovery和uni.startHCE等API,可以实现手机蓝牙和NFC的交互。
if (uni.openBluetoothAdapter) {
uni.openBluetoothAdapter({
success (res) {
uni.startBluetoothDevicesDiscovery({
allowDuplicatesKey: false, //是否允许重复上报同一设备,默认值:false
success: function (res) {
console.log('开始搜索:' + JSON.stringify(res));
}
});
}
})
} else {
uni.showModal({
title: '提示',
content: '若想使用蓝牙功能,请升级微信版本'
})
}
2.4 手机震动、声音
Uni-app提供了uni.vibrateShort和uni.playVoice等API,可以实现手机震动和声音的播放。
uni.vibrateShort({
success: function(){
console.log("震动成功!");
}
});
2.5 手机传感器
Uni-app提供了uni.onAccelerometerChange等API,可以访问手机加速度传感器等硬件。
uni.onAccelerometerChange(function(res) {
console.log("x:" + res.x);
console.log("y:" + res.y);
console.log("z:" + res.z);
});
3. 总结
以上是uniapp可以调用的硬件列表,由于uni-app封装了手机硬件相关的API,因此开发者在使用过程中不需要过多地考虑兼容问题,只需要简单调用API即可完成对硬件的访问,十分方便。