Тост-уведомление Windows 10 со сценарием, установленным на incomingCall, портит пользовательский интерфейс уведомлений

Я работаю над приложением Electron, которое использует NodeRT для отображения всплывающих уведомлений в Windows 10. Пока у меня все работает, и уведомление «ToastGeneric» отображается нормально.

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

Обычный тост отображается нормально:

Обычный тост

Однако, если я добавлю scenario="incomingCall" к <toast>, это испортит пользовательский интерфейс.

Подсказать как входящий звонок

Я нигде не мог найти подходящей документации по этому поведению. Я даже пытался использовать пример кода, предоставленный Microsoft, но и он не работает.

Любая идея, где это происходит не так?

Вот мой тост полезной нагрузки:

<toast>
    <visual>
        <binding template='ToastGeneric'>
            <text>%s</text>
            <text>%s, %s</text>
            <group>
            <subgroup>
                <text hint-style="base">52 attendees</text>
                <text hint-style="captionSubtle">23 minute drive</text>
            </subgroup>
            <subgroup>
                <text hint-style="captionSubtle" hint-align="right">1 Microsoft Way</text>
                <text hint-style="captionSubtle" hint-align="right">Bellevue, WA 98008</text>
            </subgroup>
            </group>
        </binding>
    </visual>
    <actions>
        <action arguments = 'answer'
                content = 'answer' />
        <action arguments = 'ignore'
                content = 'ignore' />
    </actions>
</toast>

person funkycoder    schedule 12.07.2019    source источник
comment
Я не знаком с электроном, но, поскольку официальный образец также не работает, это может быть проблемой, которую необходимо отслеживать. Можете ли вы поделиться со мной версией вашей ОС и целевой версией SDK?   -  person Barry Wang    schedule 15.07.2019
comment
Также вы можете показать мне изображение, чтобы показать, как выглядит официальный образец?   -  person Barry Wang    schedule 15.07.2019
comment
@BarryWang-MSFT, кнопки в официальном образце выглядят точно так же, как показано на скриншоте выше. Если я оставлю только один action, он будет выглядеть как кнопка «Игнорировать» на втором снимке экрана.   -  person funkycoder    schedule 16.07.2019
comment
Версия Windows: 10.0.17134.0. Я действительно не уверен, как получить версию SDK. Я не разработчик Windows. У меня установлены VS 2015 и VS 2017. VS2017 показывает версию SDK 10.0.17763.0. Однако не уверен насчет VS2015. Я устанавливаю свои пути так: $env:VCTargetsPath="C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140" и $env:path = "C:\Program Files (x86)\MSBuild\14.0\Bin\amd64;" + $env:path, если это как-то помогает.   -  person funkycoder    schedule 16.07.2019
comment
Основываясь на вашем шаблоне Toast, мы протестировали его в системе 18362, и он отлично работает. Я заметил, что вы использовали NodeRT для вызова API среды выполнения Windows. Исходя из этого, я предлагаю два предложения. 1. Вы можете создать новое приложение UWP и использовать стандартный ToastNotificationManager, чтобы проверить уведомление, чтобы убедиться, что оно нормальное. 2. Если первый работает нормально, это означает, что у NodeRT возникла проблема во время push-уведомления. Рекомендуется инициировать проблему поставщику пакета. Я также проверю в системе 17134, чтобы увидеть производительность уведомления.   -  person Richard Zhang - MSFT    schedule 18.07.2019
comment
@Richasy, спасибо за помощь. Я попробую ToastNotificationManager. Может быть, у вас есть какой-нибудь пример кода, который я могу использовать? Как я уже сказал, я не разработчик Windows, поэтому работающий код будет очень полезен.   -  person funkycoder    schedule 18.07.2019
comment
@funkycoder Привет, не волнуйся. Вам не нужно писать код, вы можете загрузить Визуализатор уведомлений прямо в Microsoft Store, ввести свой шаблон всплывающего уведомления и посмотреть, что будет отображаться. Если пользовательский интерфейс отличается, проблема может быть не в версии системы.   -  person Richard Zhang - MSFT    schedule 19.07.2019


Ответы (1)


Основываясь на предложении @Richard Zhang, я опробовал шаблон в визуализаторе уведомлений.

Это привело к тому же запутанному пользовательскому интерфейсу, который я вижу в NodeRT. Кажется, что сценарий incomingCall в обязательном порядке требует, чтобы шаблон предоставлял две (или три, я точно не помню) кнопки сразу после тела. И затем последняя строка с кнопкой «Ответить» и «Отклонить».

Было бы очень здорово иметь возможность использовать этот сценарий, однако мне пришлось использовать обычное тост-уведомление.

person funkycoder    schedule 11.02.2020