現在、HTML5 / JavaScriptのフィードリーダーアプリに取り組んでいますが、ライブタイルに問題があります。ブログから最新の3つの記事を返すWebサービスにクエリを実行することにより、定期的に更新されるライブタイルがあります。ライブタイルは期待どおりに機能しますが、未読の記事を表示するバッジ通知を作成したいと思います。
私がこれを行うと思った方法は、タイルが更新されるかどうかを確認してから、バッジ通知から番号を増やすことです。ユーザーがアプリを起動すると、バッジがクリアされます。
次のコード行を使用します。
var notifications = Windows.UI.Notifications;
var polledUri = new Windows.Foundation.Uri("http://my_url/feed.php");
var recurrence = notifications.PeriodicUpdateRecurrence.halfHour;
var tileUpdater = notifications.TileUpdateManager.createTileUpdaterForApplication()
tileUpdater.startPeriodicUpdate(polledUri, recurrence);
これにより、30分ごとに更新されるライブタイルが作成されます。私の問題は、PeriodicUpdateが発生するたびにバッジの更新を作成したいということです。私は次のコードを使用します:
var badgeType = notifications.BadgeTemplateType.badgeNumber;
var badgeXml = notifications.BadgeUpdateManager.getTemplateContent(badgeType);
var badgeAttributes = badgeXml.getElementsByTagName("badge");
var tileUpdater = notifications.TileUpdateManager.createTileUpdaterForApplication()
tileUpdater.startPeriodicUpdate(polledUri, recurrence);
// this is where my problem is
// if (tileUpdater.update() == true) -> This line is not correct: how can I catch the update event?
//badgeAttributes[0].setAttribute("value", currentValue + 1);
var badgeNotification = new notifications.BadgeNotification(badgeXml);
notifications.BadgeUpdateManager.createBadgeUpdaterForApplication().update(badgeNotification);
そのtileUpdater.startPeriodicUpdate関数の更新イベントをキャッチし、バッジの値をインクリメントしたいと思います。どうやってやるの?どこでも検索しましたが、答えが見つかりませんでした。
私はあなたの助けに感謝します。
ジュリアン・アタナソエ