この API は、タイトルバーの右上隅にあるボタンのプロパティを設定します。ボタンを表示するには、showOptionMenu も呼び出す必要があります。
Apple の App Transport Security (ATS) の制限により、アイコンの URL は HTTPS リンクまたは Base64 文字列である必要があります。HTTP リンクは無視されます。
setOptionMenu API の使用
AlipayJSBridge.call('setOptionMenu', {
title : 'Button', // 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 : 'Button',
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 // 複数のオプションを設定する場合、デフォルトの 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 を呼び出してください。
次の 4 つのプロパティのうち 1 つだけを設定します。プロパティは、`reset` > `title` > `icontype` > `icon` の順に優先されます。
AlipayJSBridge.call('setTitle',{
title, icon, redDot, reset, color, override, menus, icontype
})入力パラメーター
プロパティ | 型 | 説明 | 必須 | デフォルト値 |
title | string | 右側のボタンのテキストです。 | はい | "" |
icon | string | 右側のボタンのアイコンの URL です。バージョン 9.0 以降、Base64 をサポートします。 バージョン 8.3 以前:iOS 40 × 40 px (パディングなし)、Android 50 × 50 px (両側に 5 px の透明なパディング)。 バージョン 8.4 以降:両プラットフォームとも 40 × 40 px (パディングなし) を使用します。 | はい | "" |
redDot | string | 赤い点の値です。 | いいえ | "" |
reset | bool | システムデフォルトにリセットします。reset が | はい | false |
color | string | テキストの色の値です。 | N | "#FFFFFFFF" |
override | bool | 複数のオプションを設定する場合、デフォルトの optionMenu を保持するかどうかを指定します。 | N | false |
menus | array | 複数のボタンを設定します。 | N | [] |
preventDefault | bool | 共有ダイアログボックスを開くデフォルトの共有機能を無効にするかどうかを指定します。`preventDefault` が `true` の場合、デフォルトの共有機能は無効になります。 | いいえ | [] |
icontype | string | イメージタイプに基づいて、プリセットのコンテナイメージを読み込みます。`icontype`、`title`、`icon` のいずれかを選択します。 重要 色の変更は、単一の optionMenu でのみサポートされます。 有効なタイプには、`user` (アカウント)、`filter`、`search`、`add`、`settings`、`scan`、`info`、`help`、`locate`、`more`、`mail` (バージョン 10.0.8 以降) があります。 | N | "" |
contentDesc | string | スクリーンリーダーモードで読み上げられるテキストを設定します。 | N | "" |