Отображение многострочных уведомлений
-
23-08-2019 - |
Вопрос
Я только начал играть с Реактивный ранец Mozilla, и мне это нравится до сих пор.Я написал небольшой код, который отображает значок в строке состояния, при нажатии на который появляется уведомление:
var myTitle = 'Hello World!';
var line1 = 'I am the very model of a modern Major-General,';
var line2 = 'I\'ve information vegetable, animal, and mineral,';
var line3 = 'I know the kings of England, and I quote the fights historical,';
var line4 = 'From Marathon to Waterloo, in order categorical.';
var myBody = line1 + ' ' + line2 + ' ' + line3 + ' ' + line4;
var myIcon = 'http://www.stackoverflow.com/favicon.ico';
jetpack.statusBar.append({
html: '<img src="' + myIcon + '">',
width: 16,
onReady: function(doc) {
$(doc).find("img").click(function() {
jetpack.notifications.show({title: myTitle, body: myBody, icon: myIcon});
});
}
});
Поскольку текст в этом примере очень длинный, уведомление выглядит следующим образом:
Уведомление о реактивном ранце http://img33.imageshack.us/img33/7113/jetpack.png
Я хочу разделить текст уведомления на четыре разные строки, когда они отображаются, чтобы окно уведомления было выше и уже.Как мне это сделать?
Правка 1 (благодаря Радд Зволински):
Я пробовал, но это не помогает:
var myBody = line1 + '\n' + line2 + '\n' + line3 + '\n' + line4;
Редактирование 2 (благодаря Олафур Вааге):
Это тоже не помогает:
var myBody = line1 + '<br />' + line2 + '<br />' + line3 + '<br />' + line4;
Редактирование 3 (благодаря Мэтт):
Даже это не помогает:
var myBody = line1 + "\n" + line2 + "\n" + line3 + "\n" + line4;
Решение
К сожалению, созданное предупреждение не допускает появления новых строк для всплывающего окна toast в Windows.В соответствии с API Jetpack:
В конечном счете, этот объект станет конечной целью простого общения с вашими пользователями.Панели уведомлений, прозрачные сообщения, рычание, нажатие на дверную ручку сообщения и так далее будут проходить здесь. На данный момент в нем есть только простые уведомления.
Как показано на исходный код, тот jetpack.notifications.show
метод выполняет вызов Mozilla nsIAlertsService
, который не допускает нескольких строк для всплывающих окон Windows toast.
Положительным моментом является то, что API указывает на то, что в будущем у вас будет гораздо больше контроля над оповещениями, но в предварительной версии вам придется свести текст уведомлений к минимуму.
Другие советы
Я не могу протестировать это, потому что я нахожусь на Mac и получаю уведомления Growl от jetpack.notifications.show
, и Growl ограничивает ширину, но попробуйте изменить myBody
к этому:
var myBody = line1 + '\n' + line2 + '\n' + line3 + '\n' + line4;
Разрывы строк действительно отображаются для меня, так что, возможно, это то, что вы ищете.
Редактировать:Это не работает для всплывающих уведомлений Windows, поэтому не отвечает на вопрос.Однако, он будет показывать новые строки в уведомлениях Growl для Mac OS X, поэтому я оставляю этот ответ открытым.
IIRC правильно, jetpack использует JavaScript и HTML, поэтому просто попробуйте добавить <br />
между строк.