ページの先頭行へ戻る
Interstage Mobile Application Server V1.3.0 アプリケーション開発ガイド
FUJITSU Software

6.5.5 WNSプッシュ通知を利用するネイティブアプリケーションの開発

WNSを利用するネイティブアプリケーションを開発するための事前準備

WNSプッシュ通知を利用するネイティブアプリケーションを開発するための事前準備として以下を行います。
  1. Windowsデベロッパーセンターの「ダッシュボード」で、アプリの作成をします。
  2. 「サービス」>>「プッシュ通知」>>「Windows プッシュ通知サービス(WNS)と Microsoft Azure Mobile Services」セクション内の「Live サービスサイト」で「パッケージSID」、「クライアントシークレット」、「アプリケーションID」を取得します。
  3. Visual Studio の「プロジェクト」メニューの「ストア」>>「アプリケーションをストアと関連付ける」を行いアプリをビルドします。
  4. 2.で取得したパッケージSIDとクライアントシークレットをIMAPSサーバに登録します

詳細は、Windowsデベロッパーセンター内を参照してください。

WNSを利用するネイティブアプリケーションの開発

WNSプッシュ通知を利用するネイティブアプリケーション向けのAPIはC#で提供します。

IMAPS向けのネイティブアプリケーションの開発環境を準備後、以下のファイルをコピーしてください。
Windows
<DVD-ROMドライブ>\development\windows\push\Com.Fujitsu.Imaps.Push.winmd
Linux
<DVD-ROMマウントディレクトリ>/development/windows/push/Com.Fujitsu.Imaps.Push.winmd

このCom.Fujitsu.Imaps.Push.winmdファイルは、参照ライブラリとして設定してください。

WNSプッシュ通知を利用するネイティブアプリケーションの開発には、以下の作業が必要です。

  • マニフェストファイルの修正
  • プッシュクライアント設定ファイルの作成
  • プッシュクライアント設定ファイル設定、プッシュハンドラ初期化処理の作成
  • App.xamlファイルの修正

1. マニフェストファイルの修正

  • トースト通知機能を利用するため [アプリケーション]タブでトースト対応を[はい]に設定します。

  • インターネット機能を利用するために、[機能]タブで[インターネット(クライアント)]を設定します。
  • バックグラウンドタスクでプッシュ通知を利用するために、[宣言]タブで使用可能な宣言として[バックグラウンドタスク]を追加し、プロパティで[プッシュ通知]を選択、エントリポイントに[Com.Fujitsu.Imaps.Push.WNS.WNSBackgroundTask]を設定します。
  • トースト通知でアラーム機能を利用するために、「アラーム」を追加します。

    また、アラーム機能を利用してよいかをユーザに確認する必要があるため、プッシュ受信を行う前に、AlarmApplicationManager.RequestAccessAsync()を実行し、ユーザに確認をするようにしてください。

    Windows 8.1 ストアアプリを開発する場合

    Package.appxmanifestを選択し、[表示][コード]からマニフェストファイルを開きます。

    Extensionsタグの子要素として、以下を追加してください。
    <m2:Extension Category=”windows.alarm" />
    Windows 10 UWPアプリを開発する場合

    [宣言]タブで使用可能な宣言として[アラーム]を追加してください。

  • トースト通知で着信機能を利用するために、「ロック画面」を追加します。
    Windows 8.1 ストアアプリを開発する場合

    Package.appxmanifestを選択し、[表示][コード]からマニフェストファイルを開きます。

    Extensionsタグの子要素として、以下を追加してください。
    <m2:Extension Category=”windows.lockScreenCall" /> 
    Windows 10 UWPアプリを開発する場合

    [宣言]タブで使用可能な宣言として[ロック画面]を追加してください。

2. プッシュクライアント設定ファイルの作成

プッシュハンドラに渡すパラメータを、プッシュクライアント設定ファイル(push.xml)に設定します。プッシュクライアント設定ファイルについては、付録D プッシュクライアント設定ファイルを参照してください。

3. プッシュクライアント設定ファイル設定、プッシュハンドラ初期化処理の作成

プッシュクライアント設定ファイル情報は、プッシュハンドラを利用する前に設定してください。
以下はプッシュクライアント設定ファイルの設定例です。
// プッシュサーバとの接続先をプッシュクライアント設定ファイルに設定する
<push.ServerAddress>https://example.com/</push.ServerAddress>
<push.SelfCertificate>true</push.SelfCertificate>
以下はプッシュ通知を受信できる状態にする場合のプッシュハンドラ初期化処理例です。
namespace Sample
{
    // プッシュ部品から通知を受け取るためのコールバッククラスの宣言
    class MyReceiver : PushReceive
    {
        public void callback(int result, IDictionary<string, object> data)
        {
            // ここに通知されます
            if(result == PushDefine.RESULT_REG_SERVER_WNS_SUCCESS) {  // 初期化完了
            }
        }
    }

    public void executeSample()
    {
        // プッシュハンドラの初期化
        WNSRegister register = WNSRegister.getInstance(new WNSPushReceiver(this));
        register.init();
        …
     }
}

ログ出力を行う場合、6.5.6 ログ出力のカスタマイズを参照してください。

認証の設定は、6.5.7 認証クラスの定義を参照してください。

拡張データを指定する場合は、6.5.8 拡張データの指定の指定を参照してください。

エラー通知受け取りを行う場合、6.5.12 WNSプッシュの処理結果受け取りを参照してください。

既読通知機能の利用を行う場合、6.5.13 既読通知機能の利用を参照してください。

4. App.xamlファイルの修正

ネイティブアプリケーションでトースト通知からのアクション機能を使用する場合は、App.xaml内のOnLaunchedメソッドからWNSToastActionクラスのactionメソッドを呼び出す必要があります。
以下は実装例です。
例:App.xaml.cs
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
  ・・・
  WNSToastAction.action(e.Arguments, e.Kind);
}