2014-01-21 61 views
0

我正在開發windows phone 8應用程序。我必須在Facebook和Twitter上分享應用程序的下載鏈接。如何知道windows phone 8應用程序的下載鏈接

在將應用程序發佈到Windows手機應用商店之前,如何知道應用程序的下載鏈接。

因爲我們必須在發佈應用程序之前實現共享功能。

我期待着您的回覆。

感謝&問候, 蘇雷什

回答

0

基本上你的應用程序下載鏈接格式如下:

http://windowsphone.com/s?appid=<ApplicationId> 

<ApplicationId>WMAppManifest.xml文件App元素的ProductID屬性的值。 ProductIDWMAppManifest.xml將在您將應用提交到Marketplace時被覆蓋,因此請避免對其進行硬編碼。 This post演示如何從清單文件獲取<ApplicationId>以及如何使用Microsoft.Phone.Tasks.ShareLinkTask分享它。

UPDATE:

總之,創建一個輔助類從WMAppManifest.xml文件讀取ApplicationID

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

+0

爲什麼你忽略此併發布[新問題](http://stackoverflow.com/q/21258988/2998271)具有相同的內容?相同的問題與此類似的答案[這裏](http://stackoverflow.com/a/13640399/2998271) – har07

相關問題