C# 从nfc标记上NDEF记录中的自定义uri获取应用程序数据(Windows Phone 8)
我已经定义了一个自定义URI方案,并将其添加到应用程序清单中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映射器的
<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;
}
}