警告: Apple がプッシュ通知サービスのレガシー バイナリ プロトコルを非推奨 (2020 年 11 月) とし、その後廃止 (2021 年 3 月 31 日) したため、GeneXus で生成される Apple アプリケーションにプッシュ通知を統合する唯一の方法は、通知プロバイダーを使用することです。
これは、Apple アプリケーション用にプッシュ通知を設定するためのステップ バイ ステップ ガイドです。プッシュ通知の使い方に関する一般的な情報が必要な場合は、「
ネイティブ モバイル アプリケーションでのプッシュ通知」を参照してください。
GeneXus アプリケーションでのプッシュ通知は、コンパイルされたアプリケーションでのみ使用できます。つまり、モバイルジェネレーターの設定で、 [ Apple Specific ] プロパティグループにある
[ Execution Type ] プロパティの値を [
Knowledge Base Navigator (Device) ] とは異なる値に設定し、アプリケーションがビルドされる MAC OS コンピューターの接続情報を挿入する必要があります。
また、
Apple プッシュ通知サービスを使用する Apple アプリケーションを開発する場合、いくつかのアクションが必要になります。
以下のことが必要です:
- SSL 証明書を作成して、サービスを使用できるようにします。
- MAC のキーチェーンからエクスポートします。
- アプリケーション用の適切なプロビジョニングプロファイルを作成します。
通知は、
[ Main program ] プロパティが True に設定された
Menu オブジェクト、
Panel オブジェクト、および
Work With オブジェクトで有効にできます。このためには、 [ Main object properties ] グループにある
[ Enable Notifications ] プロパティを True に設定します。これにより、Notifications と呼ばれるプロパティの新しいグループが利用できます。次のプロパティが含まれます:
これらのプロパティでは、Apple プッシュ通知サービスで使用するために先ほど生成してエクスポートした SSL 証明書のファイル名とパスワードを指定する必要があります。
このファイルは、環境フォルダの Web ディレクトリーの下のプライベートディレクトリーに配置する必要があります。
このための最良の方法は、プロパティのファイルセレクター (...) から p12 ファイルを選択することです。この方法により、ファイルが
ナレッジベースにインポートされ、次のビルドプロセスでプライベートディレクトリーに自動的にデプロイされます。
通知プロバイダーを使用している場合は、この 2 つのプロパティは設定する必要はありません。
Apple プッシュ通知サービスには、それぞれに異なる SSL 証明書を必要とする、Sandbox 環境 (開発、テスト目的で使用) および本番環境 (配布) の、2 つの異なる作業環境があります。このプロパティでは、Apple プッシュ通知サービスでどちらの環境を使用するか指定する必要があります。
通知プロバイダーを使用している場合は、このプロパティも設定する必要はありません。
最後に、 [ iOS Bundle Identifier ] プロパティの値を検討する必要があります。これは、ここでは非常に重要です。既定値は com.artech.<MainObjectName> ですが、(必要な場合) 使用する SSL 証明書に関連付けられた App ID で設定した [ iOS Bundle Identifier ] 用に変更する必要があります。
次のドキュメントに示されるポートが開いているかどうかを確認してください:
https://support.apple.com/en-is/HT203609
これ以降、モバイルデバイスでプッシュ通知が有効になっている GeneXus アプリケーションを実行するたびに
デバイス登録サービスが実行され、そのデバイスへのメッセージ送信 (プッシュ通知) に使用されるデバイス情報が登録および格納されます。
次の送信側の例に示すように、通知が送信されます:
通知プロバイダー API
Apple プッシュ通知サービスを使用する iOS アプリケーションと同様に、GeneXus で生成した iOS アプリケーションを最初に実行するときに、通知を有効にするかどうかの確認メッセージが表示されます。このメッセージで選択するオプションに関わらず、アプリケーション通知は、後で iOS の通知センターで設定できるようになります。
注: 通知は、クライアントアプリケーションで許可されないかぎり、機能しません。