Push-уведомления для квадратных и широких плиток

Я использую Azure Mobile Services для отправки push-уведомлений моему клиенту. приложение. Я отправляю как квадратное, так и тайловое уведомление, используя объект push.wns (сначала квадратное, а затем широкое). Ниже показано, как выглядит код на стороне сервера, который отправляет push-уведомления (в основном это вызывается всякий раз, когда запись обновляется в моей таблице БД):

function update(item, user, request) {
request.execute({
    success: function() {
        request.respond();
        sendNotifications();
    }
});

function sendNotifications() {
    var channelTable = tables.getTable('channel');

    channelTable.read({
        success: function(channels) {
            channels.forEach(function(channel) {
                push.wns.sendTileSquarePeekImageAndText02(channel.pushuri, 
                {image1src: '<imgPath>', 
                text1: 'New Game',
                text2: item.playername  }, 
                    { 
                     success: function(pushResponse) { console.log("Sent Square:", pushResponse); },
                     error: function(error) {
                                console.log("error sending push notification to ", channel.pushuri);
                                if (error.statusCode == 410) {
                                    console.log("Deleting ", channel);
                                    channelTable.del(channel.id);               
                                }
                            }  
                    });

                push.wns.sendTileWidePeekImage01(channel.pushuri, 
                {image1src: <imgPath>, 
                text1: 'New Game',
                text2: item.playername  }, 
                    { 
                     success: function(pushResponse) { console.log("Sent Square:", pushResponse); },
                     error: function(error) {
                                console.log("error sending push notification to ", channel.pushuri);
                                if (error.statusCode == 410) {
                                    console.log("Deleting ", channel);
                                    channelTable.del(channel.id);               
                                }
                            }  
                    });
            });
        }
    });
}

}

Я заметил, что широкое уведомление отображается правильно, когда моя плитка приложения широкая. Однако, когда я делаю размер плитки своего приложения квадратным, квадратное уведомление не отображается. Как я могу это исправить?


person Raman Sharma    schedule 20.01.2013    source источник
comment
Почти невозможно ответить без кода.   -  person Daniel Kelley    schedule 20.01.2013
comment
@DanielKelley добавил немного кода   -  person Raman Sharma    schedule 20.01.2013
comment
Непонятно, почему это было помечено как C#, если ваш код не C#.   -  person Daniel Kelley    schedule 20.01.2013
comment
Я пометил вопрос как JavaScript и WinJS.   -  person JKor    schedule 20.01.2013
comment
ах мой плохой. Мое клиентское приложение — C#, хотя вся облачная инфраструктура, которая отправляет уведомления этому приложению, написана на Javascript.   -  person Raman Sharma    schedule 20.01.2013
comment
@JKor этот код не имеет ничего общего с WinJS. Весь этот код Javascript находится на стороне сервера.   -  person Raman Sharma    schedule 20.01.2013
comment
Я тогда удалю этот тег.   -  person JKor    schedule 20.01.2013
comment
Связано с stackoverflow.com/q/12603719/1656796   -  person Nathan Kuchta    schedule 21.01.2013
comment
JFYI, это отслеживается здесь: github.com/tjanczuk/wns/issues/7   -  person Yavor Georgiev    schedule 01.02.2013


Ответы (2)


Вот пример, который вы можете использовать для отправки одного обновления и обновления двух типов плиток одновременно.

push.wns.send(item.channel,
'<tile><visual>' +
'<binding template="TileSquarePeekImageAndText02">' + 
    '<image id="1" src="imageUri" />' + 
    '<text id="1">Template: TileSquarePeekImageAndText02</text>' + 
    '<text id="2">' + item.text + '</text>' + 
'</binding>' + 
'<binding template="TileWidePeekImage01">' + 
    '<image id="1" src="imageUri" />' + 
    '<text id="1">Template: TileWidePeekImage01</text>' + 
    '<text id="2">' + item.text + '</text>' + 
'</binding>' + 
'</visual></tile>',
"wns/toast", {
    success: function(pushResponse) {
        console.log("Sent push:", pushResponse);
    }
}
);
person Teemu Tapanila    schedule 24.01.2013

Уведомление плитки с широким содержимым заменяет уведомление плитки, содержащее квадратное содержимое. Следует отправить одно уведомление, содержащее как квадратное, так и широкое содержимое плитки.

person Nathan Kuchta    schedule 20.01.2013
comment
Вы случайно не знаете, как создать эту полезную нагрузку на стороне сервера с помощью Javascript? - person Raman Sharma; 21.01.2013
comment
Похоже, что методы sendTile* отправляют контент только одного типа (квадратного или широкого). Чтобы создать уведомление как с квадратным, так и с широким содержимым, используйте отправить и явно передать XML-код уведомления. - person Nathan Kuchta; 21.01.2013
comment
Это то, что я имел в виду. Я новичок в javascript, JSON, XML и т. д. Знаете ли вы, как создать этот фрагмент полезной нагрузки xml? - person Raman Sharma; 21.01.2013