uni-app 之 uni.showActionSheet

uni.showActionSheet 是 uni-app 中用于显示操作菜单的 API,通常用于提供多个选项供用户选择操作。

基本用法

javascript 复制代码
uni.showActionSheet({
  itemList: ["选项一", "选项二", "选项三"],
  success: function (res) {
    console.log("用户点击了第" + (res.tapIndex + 1) + "个选项");
  },
});

参数说明

参数 类型 默认值 必填 说明
itemList Array - 按钮的文字数组,数组长度最大为 6
itemColor String '#000000' 按钮的文字颜色
success Function - 接口调用成功的回调函数
fail Function - 接口调用失败的回调函数
complete Function - 接口调用结束的回调函数

success 返回参数说明

success 回调函数会收到一个对象参数,包含以下属性:

参数名 类型 说明
tapIndex Number 用户点击的按钮序号,从上到下的顺序,从 0 开始

示例代码

基础用法
javascript 复制代码
uni.showActionSheet({
  itemList: ["拍照", "从相册选择", "取消"],
  success: function (res) {
    console.log("用户点击了第" + res.tapIndex + "个选项");
    switch (res.tapIndex) {
      case 0:
        // 拍照逻辑
        takePhoto();
        break;
      case 1:
        // 从相册选择逻辑
        chooseFromAlbum();
        break;
      case 2:
      default:
        // 取消操作
        break;
    }
  },
  fail: function (res) {
    console.log("用户取消操作");
  },
});
自定义文字颜色
javascript 复制代码
uni.showActionSheet({
  itemList: ["编辑", "分享", "删除", "取消"],
  itemColor: "#007AFF",
  success: function (res) {
    switch (res.tapIndex) {
      case 0:
        editItem();
        break;
      case 1:
        shareItem();
        break;
      case 2:
        deleteItem();
        break;
    }
  },
});
处理取消操作
javascript 复制代码
uni.showActionSheet({
  itemList: ["保存图片", "收藏", "举报"],
  success: function (res) {
    switch (res.tapIndex) {
      case 0:
        saveImage();
        break;
      case 1:
        favorite();
        break;
      case 2:
        report();
        break;
    }
  },
  fail: function (res) {
    console.log("用户取消选择");
  },
});

注意事项

  1. itemList 数组长度最多为 6 个,超出部分会被忽略
  2. 在微信小程序中,Android 平台的 action sheet 会从底部弹出,iOS 平台会从右侧滑出
  3. itemColor 仅支持十六进制颜色值
  4. 用户点击遮罩层或按下返回键也会触发 fail 回调
  5. 在 App 端,可以通过配置 manifest.json 来修改 action sheet 的样式

完整示例

javascript 复制代码
// 用户头像操作菜单
function showAvatarMenu() {
  uni.showActionSheet({
    itemList: ["查看大图", "保存图片", "更换头像", "取消关注"],
    itemColor: "#333333",
    success: function (res) {
      switch (res.tapIndex) {
        case 0:
          previewAvatar();
          break;
        case 1:
          saveAvatarToAlbum();
          break;
        case 2:
          changeAvatar();
          break;
        case 3:
          unfollowUser();
          break;
      }
    },
    fail: function (res) {
      console.log("用户取消操作");
    },
  });
}

// 预览图片
function previewAvatar() {
  uni.previewImage({
    urls: ["https://example.com/avatar.jpg"],
  });
}

// 保存图片到相册
function saveAvatarToAlbum() {
  uni.saveImageToPhotosAlbum({
    filePath: "https://example.com/avatar.jpg",
    success: function () {
      uni.showToast({
        title: "保存成功",
        icon: "success",
      });
    },
  });
}
相关推荐
心中无石马1 小时前
uniapp引入tailwindcss4.x
前端·css·uni-app
fix一个write十个1 小时前
【uniApp开发】微信小程序 web-view 内嵌 H5 跳转支付踩坑实录
微信小程序·uni-app
wuxianda10304 小时前
苹果App上架4.3a被拒解决方案汇报总结
ios·uni-app·objective-c·cocoa·苹果上架·4.3a
西洼工作室10 小时前
uniapp+vue3+python对接阿里云短信认证服务alibabacloud_dypnsapi20170525
python·阿里云·uni-app
wuxianda103011 小时前
苹果App上架4.3a问题3天解决方案汇报总结
开发语言·javascript·uni-app·ecmascript·ios上架·苹果上架
_pengliang11 小时前
uni-app 实现sse流式音频技术方案
uni-app·音视频
MY_TEUCK1 天前
【AI 应用】前端接口联调工程化:把 Swagger 接入沉淀成可复用 Skill
前端·人工智能·uni-app·状态模式
上架ipa1 天前
uniapp打包ios配置、申请证书、测试和上架综合教程
uni-app
00后程序员张1 天前
完整指南 iOS App上架到App Store的步骤详解
macos·ios·小程序·uni-app·objective-c·cocoa·iphone
hhzz1 天前
记录微信小程序tabbar不显示问题:uni-app Vue 3 自定义 tabBar 不渲染
vue.js·微信小程序·uni-app