如何使用可变查询字符串深度链接切片?

时间:2013-12-12 16:59:52

标签: windows-phone-8 windows-phone

我按照以下方式创建了我的磁贴,希望在运行时将panelId={0}解析,当我将磁贴通知发送到手机时。

StandardTileData NewTileData = new StandardTileData
{
    BackgroundImage = new Uri("tile_medium.png", UriKind.Relative),
};

ShellTile.Create(new Uri("MainPage.xaml?Name=MyTile&panelId={0}", UriKind.Relative), NewTileData);

然后我发送以下通知:

<?xml version="1.0" encoding="utf-8"?>
<wp:Notification xmlns:wp="WPNotification">
  <wp:Tile Id="/MainPage.xaml?Name=MyTile&amp;panelId=106398738">
    <wp:BackgroundImage>alarm.png</wp:BackgroundImage>
    <wp:Count>72</wp:Count>
    <wp:Title>My Title</wp:Title>
    <wp:BackContent>Text of the tile</wp:BackContent>
  </wp:Tile>
</wp:Notification>

我希望将panelId={0}解析为panelId=106398738,但这似乎不会发生。即使服务器确认收到通知,手机也不会更新磁贴。

我还尝试将<wp:Param>添加到查询字符串中,如下所示,但这也不起作用:

<wp:Param>/MainPage.xaml?Name=MyTile&amp;panelId=106398738"</wp:Param>

是否可以使用可变查询字符串深度链接磁贴?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:0)

我建议使用以下代码段:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    if (e.NavigationMode == NavigationMode.New)
    {
        string textValue;
        int value;

        if (NavigationContext.QueryString.TryGetValue("panelId", out textValue))
        {
            if (int.TryParse(textValue, out value))
            {
                // got it!
            }
        }
    }
    base.OnNavigatedTo(e);
}