C# 从nfc标记上NDEF记录中的自定义uri获取应用程序数据(Windows Phone 8)

C# 从nfc标记上NDEF记录中的自定义uri获取应用程序数据(Windows Phone 8),c#,windows-phone-8,uri,nfc,ndef,C#,Windows Phone 8,Uri,Nfc,Ndef,我已经定义了一个自定义URI方案,并将其添加到应用程序清单中 <Extensions> <Protocol Name="mycustomuri" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" /> </Extensions> 谁能告诉我哪里出了问题?当我点击标记并接受提示时,调试器中断-at NavigationFailed 谢谢。已解决 更改了标记和Uri映射器的

我已经定义了一个自定义URI方案,并将其添加到应用程序清单中

 <Extensions>
        <Protocol Name="mycustomuri" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" />
      </Extensions>
谁能告诉我哪里出了问题?当我点击标记并接受提示时,调试器中断-at NavigationFailed

谢谢。

已解决

更改了标记和Uri映射器的内容

标签现在看起来像这样

mycustomuri:uid?uid=00001
UriMapper相应地发生了变化:

class AssociationUriMapper : UriMapperBase
{
    public bool uidFound;

    private string tempUri;
    public override Uri MapUri(Uri uri)
    {
        tempUri = System.Net.HttpUtility.UrlDecode(uri.ToString());
        // URI association launch for my app detected
        if (tempUri.Contains("mycustomuri:uid?uid="))
        {
            // Get the category (after "Category=").
            int uidIndex = tempUri.IndexOf("uid=")+7;
            string uid = tempUri.Substring(uidIndex);
            // Redirect to the MainPage.xaml with the proper category to be displayed
            return new Uri("/DetectTag.xaml?uid=" + uid, UriKind.Relative);
        }
        // Otherwise perform normal launch.
        return uri;
    }
}
为了完整起见,这里是用户被定向到的页面

public partial class DetectTag : PhoneApplicationPage
{
    int uid;
    public DetectTag()
    {
        InitializeComponent();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        if (NavigationContext.QueryString.ContainsKey("uid"))
        {
            uid = int.Parse(NavigationContext.QueryString["uid"]);
        }
        base.OnNavigatedTo(e);

        string stringUid = uid.ToString();
        tagID.Text = stringUid;

    }
}
public partial class DetectTag : PhoneApplicationPage
{
    int uid;
    public DetectTag()
    {
        InitializeComponent();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        if (NavigationContext.QueryString.ContainsKey("uid"))
        {
            uid = int.Parse(NavigationContext.QueryString["uid"]);
        }
        base.OnNavigatedTo(e);

        string stringUid = uid.ToString();
        tagID.Text = stringUid;

    }
}