我正在开发windows phone 8应用程序。我必须在Facebook和Twitter上分享应用程序的下载链接。
在将应用程序发布到Windows Phone商店之前,我怎么知道应用程序的下载链接。
因为我们必须在发布应用程序之前实现共享功能。
我很期待你的回复。
谢谢&问候, 苏雷什
答案 0 :(得分:0)
基本上您的应用程序下载链接格式如下:
http://windowsphone.com/s?appid=<ApplicationId>
带有<ApplicationId>
的是ProductID
文件中App
元素的WMAppManifest.xml
属性的值。当您将应用程序提交到市场时,ProductID
中的WMAppManifest.xml
将被覆盖,因此请避免对其进行硬编码。 This post演示了如何从清单文件中获取<ApplicationId>
以及如何使用Microsoft.Phone.Tasks.ShareLinkTask
分享它。
更新:
总结一下,创建一个帮助类来从ApplicationID
文件中读取WMAppManifest.xml
:
public class DeepLinkHelper
{
private const string AppManifestName = "WMAppManifest.xml";
private const string AppNodeName = "App";
private const string AppProductIDAttributeName = "ProductID";
public static string BuildApplicationDeepLink()
{
var applicationId = Guid.Parse(GetManifestAttributeValue(AppProductIDAttributeName));
return BuildApplicationDeepLink(applicationId.ToString());
}
public static string BuildApplicationDeepLink(string applicationId)
{
return @"http://windowsphone.com/s?appid=" + applicationId;
}
public static string GetManifestAttributeValue(string attributeName)
{
var xmlReaderSettings = new XmlReaderSettings
{
XmlResolver = new XmlXapResolver()
};
using (var xmlReader = XmlReader.Create(AppManifestName, xmlReaderSettings))
{
xmlReader.ReadToDescendant(AppNodeName);
if (!xmlReader.IsStartElement())
{
throw new FormatException(AppManifestName + " is missing " + AppNodeName);
}
return xmlReader.GetAttribute(attributeName);
}
}
}
然后你可以通过这种方式获得/分享下载链接:
new Microsoft.Phone.Tasks.ShareLinkTask()
{
Title = "My Application Deep Link",
Message = "My Application Deep Link",
LinkUri = new Uri(DeepLinkHelper.BuildApplicationDeepLink())
}.Show();
对于以上所有代码,请归功于Pedro Lamas。