在Universal Application中为WindowsPhone添加UriMapper

mal*_*lte 2 c# windows-phone-8.1 win-universal-app

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

任何人都知道这出错的地方以及我必须做些什么来保持功能,即使在通用应用程序中(没有为Windows 8.1应用程序提供相同的功能)?

Nei*_*ner 11

自Windows Phone 8以来,应用程序处理Uris的方式发生了很大的变化.以前,该应用程序将通过一个需要大量解析才能使用的Uri - 因此需要一个微软提供的UriMapper.

对于Windows Phone 8.1和Windows 8.1(即通用XAML应用程序),处理应用程序激活(通过OpenFilePicker,ShareTarget,Protocol等)由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
    }
}
Run Code Online (Sandbox Code Playgroud)

来源:官方MSDN文档

确定ActivationKind并转换为正确的EventArgs类型后,只需解析数据的参数即可.

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