全部產品
Search
文件中心

Mobile Platform as a Service:設定右上方按鈕

更新時間:Jul 25, 2024

此介面用於設定標題列右邊的按鈕屬性(僅負責設定),該按鈕的顯示需要額外調用 showOptionMenu

說明

由於蘋果的 ATS 限制,icon URL 必須為 HTTPS 連結或 Base64,而 HTTP 連結會被忽略。

setOptionMenu 介面的使用方法

AlipayJSBridge.call('setOptionMenu', {
  title : '按鈕',  // 與 icon、icontype 三選一
  redDot : '-1', // -1 表示不顯示,0 表示顯示紅點,1-99 表示在紅點上顯示的數字
  color : '#ff00ff00', // 必須以 # 開始 ARGB 顏色值
});

程式碼範例

設定各種類型的右側按鈕:

<h1>點擊以下按鈕看不同效果</h1>

<a href="javascript:void(0)" class="btn button">單按鈕</a>
<a href="javascript:void(0)" class="btn icon">單表徵圖</a>
<a href="javascript:void(0)" class="btn menu">多菜單(9.9.3)</a>
<a href="javascript:void(0)" class="btn reset">重設</a>
<a href="javascript:void(0)" class="btn hide">隱藏</a>
<a href="javascript:void(0)" class="btn show">顯示</a>

<script>
function ready(callback) {
  // 如果 jsbridge 已經注入則直接調用
  if (window.AlipayJSBridge) {
    callback && callback();
  } else {
    // 如果沒有注入則監聽注入的事件
    document.addEventListener('AlipayJSBridgeReady', callback, false);
  }
}
ready(function(e) {
  document.querySelector('.button').addEventListener('click', function() {
    AlipayJSBridge.call('setOptionMenu', {
      title : '按鈕',
      redDot : '5', // -1 表示不顯示,0 表示顯示紅點,1-99 表示在紅點上顯示的數字
      color : '#ff00ff00', // 必須以#開始 ARGB 顏色值
    });
    AlipayJSBridge.call('showOptionMenu');
  });

  document.querySelector('.icon').addEventListener('click', function() {
    AlipayJSBridge.call('setOptionMenu', {
      icon : 'http://pic.alipayobjects.com/e/201212/1ntOVeWwtg.png',
      redDot : '-1', // -1 表示不顯示,0 表示顯示紅點,1-99 表示在紅點上顯示的數字
    });
    AlipayJSBridge.call('showOptionMenu');
  });

  document.querySelector('.menu').addEventListener('click', function() {
    AlipayJSBridge.call('setOptionMenu', {
      // 顯示時的順序為從右至左
      menus: [{
        icontype: 'scan',
        redDot: '-1', // -1 表示不顯示,0 表示顯示紅點,1-99 表示在紅點上顯示的數字
      }, {
        icontype: 'user',
        redDot: '-1', // -1 表示不顯示,0 表示顯示紅點,1-99 表示在紅點上顯示的數字
      }],
      override: true // 在需要設定多個 option 的情況下,是否保留預設的 optionMenu
    });

    // 必須強制調用一次以重新整理介面
    AlipayJSBridge.call('showOptionMenu');
  });  

  document.querySelector('.reset').addEventListener('click', function() {
    AlipayJSBridge.call('setOptionMenu', {
      reset: true,
    });
    AlipayJSBridge.call('showOptionMenu');
  });  

  document.querySelector('.show').addEventListener('click', function() {
    AlipayJSBridge.call('showOptionMenu');
  });  

  document.querySelector('.hide').addEventListener('click', function() {
    AlipayJSBridge.call('hideOptionMenu');
  });  

  document.addEventListener('optionMenu', function(e) {
   alert(JSON.stringify(e.data));
  }, false);
});
</script>

API 說明

重要

設定 setOptionMenu 後,如果效果不對,請調用一次 showOptionMenu

reset、title、icontype、icon 這四個屬性有一個即可,屬性的優先順序為:reset > title > icontype > icon。

AlipayJSBridge.call('setTitle',{
  title, icon, redDot, reset, color, override, menus, icontype
})

入參

屬性

類型

描述

必填

預設值

title

string

右按鈕文字。

Y

“”

icon

string

右按鈕表徵圖 URL,base64(since 9.0)。

8.3 及以前版本:iOS 40x40(周邊不留白), Android 50x50(四邊各透明留白 5px)。

8.4 及以後版本:兩個平台統一使用 40x40(周邊不留白)。

Y

“”

redDot

string

紅點數值。

N

“”

reset

bool

重設為系統預設,當 reset=true 時,忽略其他參數。

Y

false

color

string

文字顏色值。

N

“#FFFFFFFF”

override

bool

在需要設定多個 option 的情況下,是否保留預設的 optionMenu。

N

false

menus

array

設定多個按鈕。

N

[ ]

preventDefault

bool

是否阻止預設的分享功能(預設是彈分享框)preventDefault=true 時,會阻止預設的分享。

N

[ ]

icontype

string

根據圖片類型載入容器預置圖片,可選擇其中之一:icontype、title、icon。

重要

只支援單個 optionMenu 變色。

具體類型包含 user(賬戶)、filter(篩選器)、search(尋找)、add(添加)、settings(設定)、scan(掃一掃)、info(資訊)、help(協助)、locate(定位)、more(更多)、mail(郵箱 10.0.8 及以上)。

N

“”

contentDesc

string

設定盲人模式來閱讀文案。

N

“”