自分のアプリケーションのディープ リンクを Windows Phone Marketplace からプログラムで取得して、自分のコードで使用できるようにするにはどうすればよいですか?
質問する
2255 次
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 に答える