2

我正在努力从现有的 windows phone 8.1 应用程序中创建一个通用应用程序。我使用了这里描述的 AssociationUriMapper ,但我找不到在通用应用程序中使用它的方法。System.Windows.Navigation命名空间不存在,因此我无法覆盖UriMapperBase.

任何人都知道哪里出了问题,以及即使在通用应用程序中(不提供与 Windows 8.1 应用程序相同的功能),我必须做些什么才能保持该功能?

4

1 回答 1

11

自 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 类型之后,只需解析数据的参数即可。

该页面上还有一个通用应用程序示例,其中详细介绍了其中一些场景。

于 2014-06-01T14:57:19.597 回答