バッジは、
Apple ユーザーにはなじみのある UI の機能です。
プッシュ通知または
ローカル通知の機能を使うほぼすべてのネイティブアプリケーションで使用されています。
上図では、画面内の 5 つのアプリケーションでバッジ機能がオンになっており、残り多数のアプリケーションではバッジ機能が作動していません。バッジ機能は、アプリケーションのアイコン上に、赤地に白文字で数値を表示します。通常、iOS ネイティブフレームワークが次の情報を表示するために使用します:
a. 受信トレイの未読メールの件数
b. SMS/iMessage アプリケーションの新着テキストメッセージの件数
c. Apple App Store で入手可能な新しいアップグレードの数
d. 未適用の新しい iOS アップグレード
e. その他さまざまな情報
アプリケーションに
プッシュ通知または
ローカル通知の機能があり、ユーザーからの何らかの対応が必要な場合は、この機能が非常に便利かつ重要です。この機能を使用して、アプリケーションが対応待ち状態であることを示すことができるからです。
ここでは、GeneXus で生成した
Apple アプリケーションにバッチ機能を追加する方法などを、簡単なチュートリアルで紹介します。
Interop 外部オブジェクトのいくつかのメソッドを使用して、この機能を有効化し、使用できます。
SetBadgeNumber (Number) |
iOS デバイスのホーム画面上のアプリケーションアイコンの上に表示する数値を設定します。Number パラメーターとして渡された数値が 0 の場合、赤いバッジアイコンは表示されません。 |
iOSSetBadgeTextToTab (Text,TabIndex) |
パラメーターとして渡されたインデックスにあるタブの上に表示するテキストを設定します。このコントロールは、ダッシュボードのタブに使用され、ツールバーからドラッグ アンド ドロップで追加される Tab コントロールのタブには適用されません。インデックスは左から右の順番で 1 から始まります。 |
iOSSetSelectedTabIndex (TabIndex) |
TabIndex の位置にあるタブをアクティブとして設定します。インデックスは左から右の順番で 1 から始まります。 |
この例では、4 ~ 5 個のアイテムを追加した
Menu オブジェクトを使用します。メニューの [ Control ] プロパティは Tabs に設定します。
次の
Panel オブジェクトを作成します:
Event 'iosSetBadgetext'
Interop.IOSSetBadgeTextToTabIndex('test',2)
Endevent
Event 'iosSetTabIndex'
Interop.IOSSetSelectedTabIndex(3)
Endevent
Event 'RemoveBadge'
Interop.IOSSetBadgeTextToTabIndex("",2)
Endevent
Event 'iosSetBadgeNum'
Interop.SetBadgeNumber(&varnum)
Endevent
Event 'iosSetBadge0'
Interop.SetBadgeNumber(0)
Endevent
このパネルをダッシュボードに追加して F5 を押します。
SetBadgeNumber()
結果:
iosSetBadgeText()
結果:
この機能は、一般的に、
ローカル通知および
プッシュ通知と組み合わせて使用します。通知がユーザーに送信されると、バッジの数値は自動的に +1 に設定されます。このため、ユーザーが通知に対して想定される対応をした場合、現在のバッジの数値から 1 を減算する必要があります。
この減算は自動的には行われません。通知後に行われる対応をアプリケーションロジックで追跡する必要があるためです。
この処理が適切に行われないと、アプリケーションのアイコン上に表示されたバッジの数値が変化せず、通知が確認されていないように見えます。
注:
- iOS で SetBadgeNumber メソッドを使用するためには、生成された Xcode プロジェクトにバックグラウンドモードでリモート通知する機能を追加する必要があります。