showPopMenu 显示弹出菜单

优质
小牛编辑
129浏览
2023-12-01
Since 9.9

showPopMenu

右上角显示弹出的下拉菜单,如果设置了icon那么每一个菜单项都要求有icon,要不都没有icon。
特别注意,请右上角为默认三个点的时候不要调用本接口,右上角为自定义图片或者文字的时候可以调用。
注意:tag是必选项 该API在9.9版本之后可以使用

使用方法

AlipayJSBridge.call('showPopMenu', {
  menus:[
    { name: "字体", tag: "tag1", redDot: "101" },
    { name: "菜单项2",  tag: "tag2", redDot: "0" },
    { name: "菜单项3",  tag: "tag3" }
  ]
}, function () {

});

代码演示

设置弹出菜单栏

<h1>请点击右上角弹出的菜单</h1>
<script>
function ready(callback) {
  // 如果jsbridge已经注入则直接调用
  if (window.AlipayJSBridge) {
    callback && callback();
  } else {
    // 如果没有注入则监听注入的事件
    document.addEventListener('AlipayJSBridgeReady', callback, false);
  }
}
ready(function() {

  AlipayJSBridge.call('setOptionMenu', {
    title : '点我',
    redDot : '-1'
  });

  AlipayJSBridge.call('showOptionMenu');

  document.addEventListener('optionMenu', function(e) {
    AlipayJSBridge.call('showPopMenu', {
      menus:[
        { name: "字体", tag: "tag1", redDot: "101" },
        { name: "菜单项2", tag: "tag2", redDot:"0" },
        { name: "菜单项3", tag: "tag3" },
        { name: "菜单项4", tag: "tag4", redDot: "66" }
      ]
    }, function(e) {
      console.log(e);
    });
  }, false);

  document.addEventListener('popMenuClick', function(e) {
    alert(JSON.stringify(e.data));
  }, false);
});
</script>
查看演示 扫码查看 用支付宝扫码运行

API

AlipayJSBridge.call('showPopMenu', {
  menus: [{name, tag, icon,redDot}]
}, fn)

入参

名称类型描述必选默认值版本
menusarray菜单列表,显示于容器默认菜单项的右上角。
name:表示菜单项显示内容,建议在4个字符以内;
icon:可自定义icon,传入图片url(非必填)图片大小iOS中需要为42*42大小的图片;
当菜单被点击后,点击的的name会返回会通过popMenuClick事件返回;
Y
iconstring右按钮图标urlN
namestring菜单显示的内容Y
tagstringtag用于区分选项Y
redDotstring是否显示小红点N
fnfunctionapi调用后的回调函数N