我们使用以下链接处理来自win 10行动中心的吐司通知。
" https://blogs.msdn.microsoft.com/tiles_and_toasts/2015/10/16/quickstart-handling-toast-activations-from-win32-apps-in-windows-10/" 我们已经实施了#34;激活" INotificationActivationCallback的API用于处理Toast通知。
但由于行动中心包含多个通知。如何唯一标识通知。我们必须对不同的通知执行不同的操作。激活API" invokedArgs"参数始终为NULL。
答案 0 :(得分:2)
是的,问题已解决。为了处理动作中心中的调用args,您需要在创建Toast通知xml时传递launch参数。 例如
与上面的示例一样,我们已经在toast标头中使用值“invoke arguments”传递了invoke参数launch。现在,只要用户单击来自操作中心的Toast通知,就会调用“Activate”API。您将在“激活函数调用args”中收到相同的参数。现在,您可以比较调用arg值并执行操作。以下是参考示例和链接。
HRESULT NotificationActivator::Activate(PCWSTR /*appUserModelId*/, PCWSTR invokedArgs,
const NOTIFICATION_USER_INPUT_DATA* data, ULONG count)
{
if (invokedArgs == nullptr)
{
// Start my app or just do nothing because COM started the app already.
}
else if (::wcscmp(invokedArgs, L"replyToComment") == 0)
{
ASSERT(count == 1);
ASSERT(::wcscmp(data[0].Key, L"replyToComment") == 0);
DoWorkToReply(data[0].Data);
}
return S_OK;
}