#获取系统信息uni.getSystemInfo

参数 说明 平台差异说明
brand 手机品牌 App、微信小程序、百度小程序、头条小程序、QQ小程序
model 手机型号
pixelRatio 设备像素比
screenWidth 屏幕宽度
screenHeight 屏幕高度
windowWidth 可使用窗口宽度
windowHeight 可使用窗口高度
windowTop 可使用窗口的顶部位置 App、H5
windowBottom 可使用窗口的底部位置 App、H5
statusBarHeight 状态栏的高度 头条小程序不支持
navigationBarHeight 导航栏的高度 百度小程序
titleBarHeight 标题栏高度 支付宝小程序
language 应用设置的语言 头条小程序不支持
version 引擎版本号 H5不支持
storage 设备磁盘容量 支付宝小程序
currentBattery 当前电量百分比 支付宝小程序
appName 宿主APP名称 头条小程序
AppPlatform App平台 QQ小程序
host 宿主平台 百度小程序
app 当前运行的客户端 支付宝小程序
cacheLocation 上一次缓存的位置信息 百度小程序
system 操作系统版本
platform 客户端平台,值域为:ios
android
fontSizeSetting 用户字体大小设置。以“我-设置-通用-字体大小”中的设置为准,单位:px 微信小程序、支付宝小程序、百度小程序、QQ小程序
SDKVersion 客户端基础库版本 支付宝小程序和H5不支持
swanNativeVersion 宿主平台版本号 百度小程序
albumAuthorized 允许微信使用相册的开关(仅 iOS 有效) 微信小程序
cameraAuthorized 允许微信使用摄像头的开关 微信小程序
locationAuthorized 允许微信使用定位的开关 微信小程序
microphoneAuthorized 允许微信使用麦克风的开关 微信小程序
notificationAuthorized 允许微信通知的开关 微信小程序
notificationAlertAuthorized 允许微信通知带有提醒的开关(仅 iOS 有效) 微信小程序
notificationBadgeAuthorized 允许微信通知带有标记的开关(仅 iOS 有效) 微信小程序
notificationSoundAuthorized 允许微信通知带有声音的开关(仅 iOS 有效) 微信小程序
bluetoothEnabled 蓝牙的系统开关 微信小程序
locationEnabled 地理位置的系统开关 微信小程序
wifiEnabled Wi-Fi 的系统开关 微信小程序
safeArea 在竖屏正方向下的安全区域 App、H5、微信小程序
safeAreaInsets 在竖屏正方向下的安全区域插入位置(2.5.3+) App、H5、微信小程序


#拨打电话

  1. uni.makePhoneCall({
  2. phoneNumber: '17521192130'
  3. });
  4. //number:手机号码 confirm:true:用户确认后拨打 false:直接拨打
  5. plus.device.dial(number, confirm)
  6. Android不弹出询问框直接拨打电话:https://ask.dcloud.net.cn/question/4035
  7. 发送短信:http://www.html5plus.org/doc/zh_cn/messaging.html
  8. Android读取短信验证码:http://ask.dcloud.net.cn/article/676
  9. Android遍历读取短信:https://ask.dcloud.net.cn/article/12934 注意需要赋予相关权限。

#扫码

  1. // 允许从相机和相册扫码
  2. uni.scanCode({
  3. success: function (res) {
  4. console.log('条码类型:' + res.scanType);
  5. console.log('条码内容:' + res.result);
  6. }
  7. });
  8. // 只允许通过相机扫码
  9. uni.scanCode({
  10. onlyFromCamera: true,
  11. success: function (res) {
  12. console.log('条码类型:' + res.scanType);
  13. console.log('条码内容:' + res.result);
  14. }
  15. });
  16. // 调起条码扫描
  17. uni.scanCode({
  18. scanType: 'barCode',
  19. success: function (res) {
  20. console.log('条码类型:' + res.scanType);
  21. console.log('条码内容:' + res.result);
  22. }
  23. });
  24. 自定义扫码:https://www.html5plus.org/doc/zh_cn/barcode.html

#录音

参考:https://uniapp.dcloud.io/api/media/record-manager?id=getrecordermanager

  1. //语音识别文字
  2. plus.speech.startRecognize({
  3. continue: false,
  4. engine: 'baidu',
  5. lang: 'zh-cn',
  6. nbest: 1,
  7. timeout: 1000,
  8. userInterface: true,
  9. }, (res)=>{
  10. uni.showToast({
  11. title: JSON.stringify(res),
  12. icon: 'none',
  13. duration: 3000
  14. })
  15. }, (error)=>{
  16. uni.showToast({
  17. title: JSON.stringify(error),
  18. icon: 'none',
  19. duration: 3000
  20. })
  21. } );
  22. var text = null;
  23. plus.speech.addEventListener("start", function(){
  24. text = null;
  25. }, false);
  26. plus.speech.addEventListener("recognition", function(e){
  27. text += e.result;
  28. }, false);
  29. plus.speech.addEventListener("end", function(){
  30. alert("Success: "+text);
  31. }, false);

#闪光灯

  1. open () {
  2. if(plus.os.name == "iOS") {
  3. var avcaptClass = plus.ios.importClass("AVCaptureDevice");
  4. if(avcaptClass) {
  5. var device = avcaptClass.defaultDeviceWithMediaType("vide");
  6. plus.ios.invoke(device, "lockForConfiguration:", null);
  7. if(this.isOn) {
  8. plus.ios.invoke(device, "setTorchMode:", 1);
  9. plus.ios.invoke(device, "setFlashMode:", 1);
  10. } else {
  11. plus.ios.invoke(device, "setTorchMode:", 0);
  12. plus.ios.invoke(device, "setFlashMode:", 0);
  13. }
  14. plus.ios.invoke(device, "unlockForConfiguration");
  15. }
  16. }
  17. this.isOn = !this.isOn;
  18. }

#是否安装某个软件

  1. baidumap:// 百度云
  2. taobao:// 淘宝
  3. var isInstall = isInstallApp.isInstallApp(url);
  4. uni.showToast({
  5. title: JSON.stringify(isInstall),
  6. icon: 'none'
  7. })

#打开某个软件

  1. plus.runtime.openURL(appurl, function(res) {
  2. console.log(res);
  3. });

#使用浏览器打开网址

  1. plus.runtime.openURL(url)

#获取APPID

  1. uni.showToast({
  2. title: plus.runtime.appid,
  3. icon: 'none',
  4. duration: 3000
  5. })

#设置APP角标

  1. number:提示数据,0则清空
  2. plus.runtime.setBadgeNumber(number);

#打开文件

  1. //相对路径
  2. plus.runtime.openFile('/static/zsdx.pdf')

#发出蜂鸣

  1. number:次数
  2. plus.device.beep(number)

#震动

  1. plus.device.vibrate();//默认500ms
  2. uni.vibrate({
  3. success: function () {
  4. console.log('success');
  5. }
  6. });
  7. //400ms
  8. uni.vibrateLong({
  9. success: function () {
  10. console.log('success');
  11. }
  12. });
  13. //15ms
  14. uni.vibrateShort({
  15. success: function () {
  16. console.log('success');
  17. }
  18. });
  19. iOS上只有长震动,没有短震动
  20. iOS上需要手机设置“打开响铃时震动”或“静音时震动”,否则无法震动
  21. vibrate只适用于钉钉小程序、支付宝小程序

#键盘

  1. //隐藏键盘
  2. uni.hideKeyboard()
  3. plus.key.hideSoftKeybord();
  4. //监听键盘高度变化
  5. uni.onKeyboardHeightChange(res => {
  6. console.log(res.height)
  7. })

#发短信

  1. var msg = plus.messaging.createMessage(plus.messaging.TYPE_SMS);
  2. msg.to = ['18611497504', '15811140520'];
  3. msg.body = 'This is HTML5 Plus example test message';
  4. plus.messaging.sendMessage( msg );

#弹出框

  1. //系统对话弹窗框
  2. plus.nativeUI.actionSheet({
  3. title:"晚餐吃什么?",
  4. cancel:"取消",
  5. buttons:[{
  6. title:"烧鸡"
  7. },{
  8. title:"烤鸭"
  9. }
  10. ]},
  11. function(e){
  12. let option = ['取消','烧鸡','烤鸭'];
  13. uni.showToast({
  14. title: option[e.index],
  15. icon: 'none',
  16. duration: 3000
  17. })
  18. }
  19. );
  20. //alert
  21. plus.nativeUI.alert("Hello HTML5 plus!", function(){
  22. console.log("User pressed!");
  23. }, "nativeUI", "OK");
  24. //系统确认对话框
  25. let option = ['确认','取消'];
  26. plus.nativeUI.confirm("Are you sure ready?", function(e){
  27. uni.showToast({
  28. title: option[e.index],
  29. icon: 'none',
  30. duration: 3000
  31. })
  32. });
  33. //交互反馈
  34. https://uniapp.dcloud.io/api/ui/prompt?id=showtoast

#添加应用快捷方式

  1. plus.navigator.createShortcut({
  2. name: '测试快捷',
  3. toast: '创建成功'
  4. });

#预览图片

  1. plus.nativeUI.previewImage([
  2. 'http://pic.wxhand.com/student_image/1d7af20d6ffa8c9b5c3e693415a90594!Thumbwidth320',
  3. 'http://pic.wxhand.com/student_image/1d7af20d6ffa8c9b5c3e693415a90594!Thumbwidth320',
  4. 'http://pic.wxhand.com/student_image/1d7af20d6ffa8c9b5c3e693415a90594!Thumbwidth320',
  5. 'http://pic.wxhand.com/student_image/1d7af20d6ffa8c9b5c3e693415a90594!Thumbwidth320'
  6. ],{
  7. current:1,
  8. loop:true,
  9. onLongPress:function(e){ // 预览界面长按显示ActionSheet
  10. var bts=[
  11. {title:"随便来个标题",style:"destructive"},
  12. {title:"测试按钮一"},
  13. {title:"测试按钮二"}
  14. ];
  15. plus.nativeUI.actionSheet({
  16. title:"ActionSheet标题",
  17. cancel:"取消",
  18. buttons:bts,
  19. },
  20. function(e){
  21. let title = e.index > 0 ? bts[e.index-1].title : "取消";
  22. uni.showToast({
  23. title: title,
  24. icon: 'none',
  25. duration: 3000
  26. })
  27. }
  28. );
  29. }
  30. });

#设置系统状态栏颜色

  1. color: dark/light
  2. plus.navigator.setStatusBarStyle(color);

#获取系统状态栏高度

  1. uni.showToast({
  2. title: JSON.stringify(plus.navigator.getStatusbarHeight()),
  3. icon: 'none',
  4. duration: 3000
  5. })

#图片压缩

  1. plus.zip.compressImage({
  2. src: res.tempFilePaths[0],
  3. dst: res.tempFilePaths[0],
  4. quality: 10, //1-100 1最小
  5. width: '50%'
  6. },resp => {
  7. console.log(resp,'compressImage');
  8. })

#上传图片

  1. uni.chooseImage({
  2. count: 6, //默认9
  3. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  4. sourceType: ['album'], //从相册选择
  5. success: function (res) {
  6. console.log(JSON.stringify(res.tempFilePaths));
  7. }
  8. });

企业微信截图_90024bcf-d2df-4814-be1d-30475e70a344.png

#预览图片

  1. uni.previewImage({
  2. urls: res.tempFilePaths,
  3. longPressActions: {
  4. itemList: ['发送给朋友', '保存图片', '收藏'],
  5. success: function(data) {
  6. console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
  7. },
  8. fail: function(err) {
  9. console.log(err.errMsg);
  10. }
  11. }
  12. });

#获取图片信息

  1. uni.getImageInfo({
  2. src: res.tempFilePaths[0],
  3. success: function (image) {
  4. console.log(image.width);
  5. console.log(image.height);
  6. }
  7. });

#保存图片到相册

  • app
  • h5 不兼容
    1. uni.saveImageToPhotosAlbum({
    2. filePath: res.tempFilePaths[0],
    3. success: function () {
    4. console.log('save success');
    5. }
    6. });

……