我正在尝试编写一个应该在用户点击具有特定网址的链接时自动启动的应用(应该是类似“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,我只是想让它打开我的应用程序)
我现在不知道该怎么做,我找到了一些其他教程解释完全相同的东西所以我不明白为什么我的代码不起作用...
(顺便说一句,对不起,如果我做了语法或拼写错误,英语不是我的母语)答案 0 :(得分:1)
您可以查看this tutorial。
以下是它的引用:
什么会触发您的URI关联并启动您的应用:获取 来自NFC标签的URI。通过邮件获取URI。单击HTML链接 包含URI。使用自定义协议进行网页重定向。得到 来自NFC设备的URI共享URI。
还有一个:
什么不会触发您的URI关联并启动您的应用:输入 直接在Web浏览器中的URI。扫描Bing搜索中的QR码。
因此,在浏览器中输入URI不起作用。要测试从其他应用启动时应用的行为方式,您可以下载Shortcuts,创建自定义URI的快捷方式,然后输入您要在那里测试的URI。
免责声明:我在Enless Soft工作,快捷方式是我们的应用之一。
答案 1 :(得分:0)
所以我将MSDN文章http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v=vs.105).aspx中描述的代码添加到Windows Phone 7.1应用程序
我的步骤与Florian.C描述的相同。 现在的问题是,如果我添加:
<Extensions>
<Protocol Name="myApp" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" />
</Extensions>
我从VS收到错误,报告&#34;协议&#34;不能是Extensions的孩子,它是期待孩子的扩展。 是否有可能为OS 7.1运行该方案?