4

自分のアプリケーションのディープ リンクを Windows Phone Marketplace からプログラムで取得して、自分のコードで使用できるようにするにはどうすればよいですか?

4

1 に答える 1

10

AppDeeplink を取得すると、ShareStatusTask や ShareLinkTask などで非常に役立ちます。
可能ですが、アプリのマニフェスト ファイル内から実際の AppID を取得するには、重要なコードを使用する必要があります。
まず、Windows Phone アプリのディープリンクの文字列をリソースのどこかに保存します。これは簡単です 。

"http://windowsphone.com/s?appId={0}"

次に、アプリ マニフェスト ファイルを開いて適切なタグを見つけて、実際の AppId を見つける必要があります。そのために、MarketplaceHelper 内で次のコードを使用します。

static MarketplaceHelper()
{
    try
    {
        // load product details from WMAppManifest.xml
        XElement app = XElement.Load("WMAppManifest.xml").Descendants("App").Single();

        Title = GetValue(app, "Title");
        Version = new Version(GetValue(app, "Version"));
        Author = GetValue(app, "Author");
        Publisher = GetValue(app, "Publisher");
        Description = GetValue(app, "Description");

        // remove the surrounding braces
        string productID = GetValue(app, "ProductID");
        ProductID = Regex.Match(productID, "(?<={).*(?=})").Value;
    }
    catch (Exception e)
    {
        // should not happen, every application has this field and should containt the ProductID and Version
    }
}

private static string GetValue(XElement app, string attrName)
{
    XAttribute at = app.Attribute(attrName);
    return at != null ? at.Value : null;
}

マニフェストがそこにあり、適切にフォーマットされている場合は、適切にフォーマットされている必要があります。そうでない場合、アプリは機能しません。この方法で必要なデータを取得できます。

これで、次のようにディープリンクを構築できます。

string deeplink = string.Format(AppResources.DeepLinkFormat, MarketplaceHelper.ProductID);
于 2012-11-30T06:54:33.413 に答える