自分のアプリから、自分のほかのアプリを紹介したい

#wpdev_jp

せっかく Marketplace に公開しているアプリが増えてきたら、アプリの中からほかのアプリを紹介してぜひ使ってもらいたい、と思うこともあるかと。

そのための方法です。

Marketplace の検索機能の利用

Marketplace の検索のための Laucher があります。これを使うと比較的簡単に機能を実装できます。ただし、条件は「自分の名前で検索すると自分の作ったアプリがリストに上がること」 です。

private void ApplicationBarIconButton_Click(object sender, EventArgs e)
{
    MarketplaceSearchTask marketplaceSearchTask = new MarketplaceSearchTask();
    marketplaceSearchTask.SearchTerms = "shinobu";
    marketplaceSearchTask.Show();
}

こんな感じで表示されます。ただよく見ると一番下に知らないアプリが存在してたり。

Screen Capture-20120905170622410Screen Capture-20120905170623161

アプリリストを作る

確実なのは、あらかじめちゃんとそういったリストを用意しておく方法。

あらかじめアプリのアイコンも用意しておき、画像は「コンテンツ/新しい場合はコピー」の設定にしておきます。

image

 

こちらはUI側。リストボックスをダブルタップすると表示します。この紹介ページを作ってしまった方がいいですね。。

<ListBox Name="listBox1" DoubleTap="listBox1_DoubleTap" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <Image Source="{Binding image}" Height="62" Width="62" Margin="10"/>
                <TextBlock Text="{Binding name}" FontSize="48" FontFamily="Yu Gothic"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
< /ListBox>

コード側。アイテム格納用のクラスを作ってバインドしていまっす。アプリケーションのIDはデベロッパーセンターのアプリの詳細からでも、Webのマーケットプレースから抽出してもいいでしょう。

 

// コンストラクター
public MainPage()
{
InitializeComponent();

    app[] apps = new app[]{
        new app { name = "Photogram", image = "/images/photogram.png"
            ID = "c394887a-c4a2-413f-895b-99d4adf94a91" },
        new app { name = "Label Tile", image = "/images/labeltile.png",
            ID = "8af74b24-75a9-4c9a-ba9e-6911f4ee168a" },
        new app { name = "Windows Phone Tips 製品版 ", image = "/images/tips.png",
            ID = "e93890b1-2a32-42b4-9672-a33350f256c2" }
    };
    listBox1.ItemsSource = apps;
}

public class app
{
    public String name{ get; set; }
    public String image{ get; set; }
    public String ID{ get; set; }
}

private void listBox1_DoubleTap(object sender, GestureEventArgs e)
{
    app selectedapp = (app)listBox1.SelectedValue;
    if (selectedapp != null)
    {
        MarketplaceDetailTask marketplaceDetailTask = new MarketplaceDetailTask();
        marketplaceDetailTask.ContentType = MarketplaceContentType.Applications;
        marketplaceDetailTask.ContentIdentifier = selectedapp.ID;
        marketplaceDetailTask.Show();
    }
}

ダブルタップするとアプリケーションのダウンロードページに飛ばせることができます。

 

image 

いいアプリを作れば、そのほかのアプリをダウンロードしてくれることもありまっす。ぜひチャレンジを。