有没有办法启用推送通知,以便当用户单击它时,它会将他们带到与通知显示的内容相关的页面?
Posted
技术标签:
【中文标题】有没有办法启用推送通知,以便当用户单击它时,它会将他们带到与通知显示的内容相关的页面?【英文标题】:Is there a way to enable a push notification so that when a user clicks it, it brings them to a page related to what the notification showed? 【发布时间】:2015-07-28 04:04:47 【问题描述】:我的 Asp.net MVC 向我的 WP8 应用程序发送推送通知。通知显示特定数据的名称。例如,在特定日期,它将从我的 Sql Server 数据库中发送一条记录的名称,例如“aName”。因此,当天通知显示为“aName”。第二天它用不同的名字“bName”做同样的事情。
我希望用户能够单击通知并将其带到详细信息页面,该页面显示与单击通知时出现在通知上的名称相关的数据。您认为最好的方法是什么?
【问题讨论】:
只需在通知中添加一个参数,您就可以从您的应用程序中处理它。看看这里Deep linking to a screen using toast notifications 【参考方案1】:您可以通过 toast 通知向您的应用发送参数。然后,您的应用可以检查此参数并显示包含一些详细信息的特定页面。在我们的 toasts 中,我们发送一个带有参数的 uri,如下例所示:
var toastmsg = String.Format("<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<wp:Notification xmlns:wp=\"WPNotification\"><wp:Toast>" +
"<wp:Text1>0</wp:Text1>" +
"<wp:Text2>1</wp:Text2>" +
"<wp:Param>2</wp:Param>" +
"</wp:Toast>" +
"</wp:Notification>", "title", "message", "myuri");
URI 示例:/mynotification/myaction?param=aName
在您的 WindowsPhone 应用程序中,您可以定义一个自定义 UriMapper
,如下面的 sn-p:
public class MyCustomUriMapper : UriMapperBase
public override Uri MapUri(Uri uri)
var tempUri = System.Net.HttpUtility.UrlDecode(uri.ToString());
if (tempUri.StartsWith("/mynotification"))
// Check your uri param and redirect to a page with uri
// or set some properties to check in your MainPage
然后在你的 App.xaml.cs 的构造函数中设置 UriMapper:
// Assign the URI-mapper class to the application frame.
RootFrame.UriMapper = new MyCustomUriMapper();
这就是我们使用通知在应用中导航的方式。我们不想在通知内容中设置 Page-Xaml-FileName,因为它们会随着时间而改变。
【讨论】:
以上是关于有没有办法启用推送通知,以便当用户单击它时,它会将他们带到与通知显示的内容相关的页面?的主要内容,如果未能解决你的问题,请参考以下文章