当我从辅助磁贴导航到我的应用程序时遇到问题。磁贴已创建并具有导航 uri。现在我有一个问题:
在“navigateTo”上,我测试特定字符串的导航上下文。如果字符串有号码,我称这个号码。我遇到的第一个问题是当我导航到应用程序内的其他页面(在第一次单击辅助磁贴后)然后返回主页时,它也尝试调用该号码,因为导航上下文与我单击时相同次要瓷砖。如果我在第一次单击辅助磁贴后清除导航上下文,则导航有效。但是,如果我暂停应用程序并再次单击辅助磁贴,则导航上下文为空,因此不会调用任何数字。
创建瓷砖
IconicTileData tileData = new IconicTileData
{
Title = App.MainViewModel.SelectedPOI.Name,
SmallIconImage = new Uri("/Assets/Images/feature.phone.png", UriKind.Relative),
WideContent1 = App.MainViewModel.SelectedPOI.Name,
WideContent2 = App.MainViewModel.SelectedPOI.Telefonnumber,
WideContent3 = App.MainViewModel.SelectedPOI.Street
};
if (App.MainViewModel.SelectedPOI.Id == -1)
tileData.BackgroundColor = Helper.GetColorFromHexString("#E46D1D");
else
tileData.BackgroundColor = Helper.GetColorFromHexString("#4FAE32");
string SecondaryTileUriSource = String.Format("Source={0}&ID={1}", TILESTATUS, App.MainViewModel.SelectedPOI.Id);
//check if tile exist
ShellTile tile = Helper.FindTile(SecondaryTileUriSource);
if (tile == null)
{
// having a unique NavigationUri is necessary for distinguishing this tile
string tileUri = string.Concat("/MainPage.xaml?", SecondaryTileUriSource);
ShellTile.Create(new Uri(tileUri, UriKind.Relative), tileData, true);
}
OnNavigateTo - 主页
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
string status = String.Empty;
if (NavigationContext.QueryString.TryGetValue("Source", out status))
{
MainPivot.SelectedItem = AlarmPivotItem;
//App.MainViewModel.StartAlarm();
//or
//get the number from source/status...
App.MainViewModel.CallNumber(12345);
//NavigationContext.QueryString.Clear();
}
}
有没有人举个例子,例如从辅助磁贴调用一个数字,并且应用程序内可能至少有 2 个页面?问题可能出在哪里?
谢谢