Determine when a Windows 8 app is launched by Notification

穿精又带淫゛_ 提交于 2019-12-29 07:53:12

问题


I have notifications going to my application, I want to be able to take the user to that page in my application when they click on the notification or live tile (current displayed item).

Is there a way to determine what the tile data is when your app is launched from a Live Tile or Toast Notification?

Also, users have the ability to right click on a live tile and turn it off. Is there a way to detect that so I can turn off sending them live tiles or does WNS handle that?

Thanks!


回答1:


Windows does not provide a way to determine the tile content when a user launches the app via a tile. Per the UX guidelines launching from each of the following should have the corresponding behavior:

  • Main tile: The app should launch to the last place the user left the app or the app home page.
  • Secondary tile: The app should launch to specific content in the app.
  • Toast: Like a secondary tile, the app should launch to specific content in the app.

All three of types of activation will cause the OnActivated event to be fired with the IActivatedEventArgs.Kind parameter set to ActivationKind.Launch.

For both secondary tile and toast activations, the app can provide an additional context in the LaunchActivatedEventArgs.Argument parameter.

For secondary tiles, the launch arguments parameter can be set upon creation of the tile via the SecondaryTile.Arguments property.

For toast notifications, the launch arguments parameter is set as an attribute in the toast notification XML:

<toast launch="myLaunchContext">
    ...
</toast>

Lastly, apps should not need to check whether the tile has been turned on or off by the user. Windows and WNS will determine whether delivery is required. The user can turn the tile on/off while an app is not running, so the state saved by the app may be out of sync with the setting.




回答2:


you can detect the app lunch in App.xaml.cs

    protected override void OnActivated(IActivatedEventArgs args)
    {
        base.OnActivated(args);

        if(args.Kind == ActivationKind.Launch)
        {

        }
    }

Here is info on how to handle ToastNotification click event.



来源:https://stackoverflow.com/questions/13103149/determine-when-a-windows-8-app-is-launched-by-notification

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!