【发布时间】:2014-07-09 22:15:01
【问题描述】:
我正在尝试编写一个应用程序,当用户单击具有特定 url 的链接时自动启动(应该类似于“myscheme://myurl”)
我按照此链接上的说明进行操作 http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v=vs.105).aspx 但是,它不起作用
这是我的代码的样子
在 WMAppManifest.xml 文件中,我在标记之后添加了这个
<Extensions>
<Protocol Name="myscheme"
NavUriFragment="encodedLaunchUri=%s"
TaskID="_default" />
</Extensions>
然后我创建了一个名为 AssociationUriMapper.cs 的文件,其中包含
using System;
using System.Windows.Navigation;
namespace PhoneApp3
{
class AssociationUriMapper : UriMapperBase
{
private string tempUri;
public override Uri MapUri(Uri uri)
{
tempUri = System.Net.HttpUtility.UrlDecode(uri.ToString());
//URI association for my scheme
if (tempUri.Contains("myscheme:"))
{
return new Uri("/MainPage.xaml");
}
//else return
return uri;
}
}
}
然后在 App.xaml.cs 中,我在“rootframe.navigated”之后添加了这一行
// Assign the URI mapper to the frame
RootFrame.UriMapper = new AssociationUriMapper();
现在根据我对我从 msdn 中包含的链接的理解,如果我在 Windows Phone 模拟器中访问 Internet Explorer 并输入类似“myscheme://something”之类的内容,它应该会自动启动我的应用程序(即使应用程序什么都不做,前提是我现在无法真正使用该 url,我只是希望它打开我的应用程序)
我现在真的不知道该怎么做,我发现了一些其他教程解释了完全相同的事情,所以我不明白为什么我的代码不起作用......
(顺便说一句,如果我犯了语法或拼写错误,抱歉,英语不是我的母语)
【问题讨论】:
标签: c# windows-phone-8 uri url-scheme custom-url