SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows Azure新機能チュートリアル

Windows Azureモバイルサービスからプッシュ通信を利用しよう

Windows Azure 新機能チュートリアル(20)

  • X ポスト
  • このエントリーをはてなブックマークに追加

[3]アプリケーション名を選択する

 サインインが完了すると、登録されているWindowsストアアプリ名が表示されます。ここでは、先ほど作成した「NotificationSample」を選択し、[次へ]ボタンをクリックします(図12)。

図12:アプリケーションの選択画面
図12:アプリケーションの選択画面

[4]アプリケーションをWindowsストアと関連付ける

 最後に関連付けの確認ダイアログが表示されるので、[関連付け]ボタンをクリックして処理を完了します(図13)。関連付けされたデータは、自動的に「Package.appxmanifest」ファイルに追加されます。

図13:関連付け完了画面
図13:関連付け完了画面

サンプルアプリケーションの確認

 では、サンプルアプリケーションを確認していきましょう。

[1]名前空間を確認する

 概要で説明したとおり、クライアントアプリとプッシュ通知サービスを連携するためのチャネルを作成します。チャネルとは通信経路を意味しますが、ここではプッシュ通知の連携をするために、通知クライアントプラットフォームを経由してWindowsプッシュ通知サービスにチャネルのURIを要求しています。

 App.xaml.csを開いてください。リスト1は、プッシュ通知に必要なクラス群を提供するための名前空間です。Windowsストアアプリとしてプロジェクトを作成すると、すでに参照設定は行われているため追加設定は必要ありません。

リスト1(App.xaml.cs 18行目~)
// プッシュ通知用 名前空間
using Windows.Networking.PushNotifications;

[2]プッシュ通知チャネルを設定する

 次にプッシュ通知のチャネル作成部分を確認します(リスト2)。

リスト2(App.xaml.cs 40行目~)
/// <summary>
/// プッシュ通知チャネル プロパティ
/// </summary>
public static PushNotificationChannel CurrentChannel { get; private set; }        

/// <summary>
/// プッシュ通知チャネルの取得
/// </summary>
private async void AcquirePushChannel()
{
    CurrentChannel =                                                              
      await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
}

protected override void OnLaunched(LaunchActivatedEventArgs args)
{
    ...省略...
    // プッシュ通知チャネルの取得
    AcquirePushChannel();                                                         
}

 プッシュ通知を利用するために、PushNotificationChannelクラスを使用します。

 は外部クラスから参照できるよう、「PushNotificationChannel」のプロパティ設定を行っています。では、「PushNotificationChannelManager」クラスの「CreatePushNotificationChannelForApplicationAsync」メソッドを非同期で呼び出し、インスタンスを取得します。設定を行う「AcquirePushChannel」メソッドは、ストアアプリ正常に起動された場合に呼び出される「OnLaunched」メソッド内のから呼び出し、初期化します。

[3]データクラスを確認する

 データクラスを確認するために、リスト3を開きます。

リスト3(Main.xaml.cs 22行目~)
/// <summary>
/// メッセージクラス
/// </summary>
public class Message
{
    public int Id { get; set; }

     /// <summary>
    /// メッセージ本文
    /// </summary>
        [DataMember(Name = "text")]
        public string Text { get; set; }             

        /// <summary>
        /// プッシュ通知用チャネル
        /// </summary>
        [DataMember(Name = "channel")]
        public string Channel { get; set; }          
    }

 はメッセージを格納するためのプロパティです。はプッシュ通知を利用するためのURIを格納するプロパティです。

[4]データを送信する

 データクラスで定義したchannelプロパティは、リスト4のデータ送信時に格納します。

リスト4(Main.xaml.cs 73行目~)
private void ButtonSend_Click(object sender, RoutedEventArgs e)
{
    var message = new Message {
        Text = TextInput.Text, 
        Channel = App.CurrentChannel.Uri
    };
    SendMessage(message);
}

 Textプロパティにはテキストボックスに入力されたメッセージを格納し、Channelプロパティには、チャネルクラスから取得したURIを格納しモバイルサービスに送信します。

 クライアント側のプッシュ通知にかかわる部分は以上です。

次のページ
実行確認

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Windows Azure新機能チュートリアル連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト statemachine(statemachine)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6928 2012/12/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング