JSAPI

  • 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