我正在努力从现有的 windows phone 8.1 应用程序中创建一个通用应用程序。我使用了这里描述的 AssociationUriMapper ,但我找不到在通用应用程序中使用它的方法。System.Windows.Navigation
命名空间不存在,因此我无法覆盖UriMapperBase
.
任何人都知道哪里出了问题,以及即使在通用应用程序中(不提供与 Windows 8.1 应用程序相同的功能),我必须做些什么才能保持该功能?
我正在努力从现有的 windows phone 8.1 应用程序中创建一个通用应用程序。我使用了这里描述的 AssociationUriMapper ,但我找不到在通用应用程序中使用它的方法。System.Windows.Navigation
命名空间不存在,因此我无法覆盖UriMapperBase
.
任何人都知道哪里出了问题,以及即使在通用应用程序中(不提供与 Windows 8.1 应用程序相同的功能),我必须做些什么才能保持该功能?
自 Windows Phone 8 以来,应用程序在启动时处理 Uris 的方式发生了很大变化。以前,应用程序将通过需要大量解析才能使用的 Uri - 因此需要 Microsoft 提供的 UriMapper。
对于 Windows Phone 8.1 和 Windows 8.1(即通用 XAML 应用程序),应用程序激活(通过 OpenFilePicker、ShareTarget、协议等)由 OnActivated 方法处理...
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.Protocol)
{
ProtocolActivatedEventArgs eventArgs = args as ProtocolActivatedEventArgs;
// TODO: Handle URI activation
// The received URI is eventArgs.Uri.AbsoluteUri
}
}
来源:MSDN 官方文档
在确定ActivationKind
并转换为正确的 EventArgs 类型之后,只需解析数据的参数即可。
该页面上还有一个通用应用程序示例,其中详细介绍了其中一些场景。