iOS
Send Push Notifications
Objective-CでCloud Codeを使用したiOSプッシュ通知設定ガイド
22 分
objective cを使用してクラウドコードでプッシュ通知を送信する はじめに このセクションでは、back4appを通じてcloud codeを使用してプッシュ通知を送信する方法を説明します。 これがどのように見えるかです いつでも、このチュートリアルで構築された完全なプロジェクトにアクセスできます。 githubリポジトリ 。 このクイックスタートを完了するには、次のものが必要です: xcode 。 back4appで作成されたアプリ。 次の 新しいparseアプリのチュートリアル をフォローして、back4appでparseアプリを作成する方法を学びます。 back4appに接続されたiosアプリ。 注意: 次の parse sdk (swift)のインストールチュートリアル をフォローして、back4appに接続されたxcodeプロジェクトを作成します。 back4appのダッシュボードを介して設定されたiosアプリ。 back4appプッシュ通知のダッシュボードチュートリアル 。 ios 10以降を実行しているiosデバイス、iphoneまたはipad。 有料のapple開発者アカウント。 1 プッシュを受信するためにiosアプリを設定する プッシュ通知に登録されたデバイスにインストールされたすべてのparseアプリケーションには、関連する インストール インストール オブジェクトがあります。 インストール インストール オブジェクトは、プッシュ通知をターゲットにするために必要なすべてのデータを保存する場所です。たとえば、アプリ内で、ユーザーの1人が興味を持っているチームを保存して、そのパフォーマンスに関する更新を送信することができます。 インストール インストール オブジェクトを保存することは、プッシュ関連のアプリオープンイベントを追跡するためにも必要です。 通知を送信し始める最も簡単な方法は、チャネルを使用することです。これにより、プッシュを送信するためのパブリッシャー サブスクライバーモデルを使用できます。デバイスは1つ以上のチャネルにサブスクライブすることから始まり、その後、これらのサブスクライバーに通知を送信できます。特定の インストール インストール にサブスクライブされたチャネルは、 チャネル チャネル フィールドに保存されます。 インストール インストール オブジェクトの。 その後、クエリに基づいて特定のユーザーまたはユーザーグループにターゲットを絞ったプッシュ通知を送信する方法について説明します。 今後、すべてのステップを完了したと仮定します。 back4appプッシュ通知のダッシュボードチュートリアル , このチュートリアルで構築されたiosプロジェクトを使用している場合でも、私たちの githubリポジトリ 基本的なプッシュ通知が機能しているはずで、管理コンソールを介してプッシュを送信できるはずです。 2 デバイスをニュースチャンネルに登録する まず、インストールオブジェクトにチャンネルを追加します。これを行うために、app delegateファイルのcreateinstallationonparseメソッドを変更します。プロジェクトのappdelegate mファイルを開き、didregisterforremotenotificationswithdevicetokenのバージョンが以下のコードと同じであることを確認してください。新しいコード行 ‘\[currentinstallation setobject @\[@”news1”] forkey @”channels”];’ を追加します。これにより、インストールオブジェクトのチャンネル配列が「news」という1つのチャンネルを含むように設定されます。これにより、クラウドコードを介して「news」というチャンネルに登録したすべての人にメッセージを送信できるようになります。 appdelegate m 2\ 実際のデバイスでアプリを実行してテストします。シミュレーターでは実行できません。インストール記録を更新するには実際のプッシュトークンが必要なので、物理デバイスが必須です。正常に実行された後、ダッシュボードのインストールセクションにこれが表示されるはずです。 back4appのウェブサイト に移動し、アプリのダッシュボードをクリックして、インストールテーブルを確認できます。チャンネル列の下に「news」と表示され、ニュースプッシュチャンネルに登録されていることがわかります。 3 クラウドコードを作成する 始める方法についてもっと知りたい場合は、 cloud code を見てください。 ios向けcloud codeチュートリアル ファイルを作成して、cloud codeを入れます。これを呼び出す必要があります js js という名前にする必要があります。そうすることで、back4appはここにクラウドコードを保存していることを知ります。 cloud関数を定義します。 parse cloud define parse cloud define , プッシュ通知を呼び出すために。関数内で parse push send parse push send を呼び出して、「news」チャンネルにプッシュを送信します。 この操作には マスターキー を使用する必要があります。 以下のコードはこれらのステップを実行します parse server 3 x // main js 1 parse cloud define("pushsample", (request) => { 2 3 return parse push send({ 4 channels \["news"], 5 data { 6 title "hello from the cloud code", 7 alert "back4app rocks!", 8 } 9 }, { usemasterkey true }); 10 }); parse server 2 x //main js 1 parse cloud define("pushsample", function (request, response) { 2 parse push send({ 3 channels \["news"], 4 data { 5 title "hello from the cloud code", 6 alert "back4app rocks!", 7 } 8 }, { 9 success function () { 10 // push was successful 11 response success("push sent"); 12 console log("success push sent"); 13 }, 14 error function (error) { 15 // push was unsucessful 16 response error("error with push " + error); 17 console log("error " + error); 18 }, 19 usemasterkey true 20 }); 21 }) 4 cloud codeにアップロード アプリに移動して back4app ウェブサイト をクリックします ダッシュボード ダッシュボード 「 クラウドコード クラウドコード 」を見つけて、 関数とウェブホスティング 関数とウェブホスティング をクリックします。次のようになります 3\ 新しいファイルをアップロードまたは作成します(現在の main js main js ファイルをブラウザ上で直接編集することもできます)。次に、 デプロイ デプロイ をクリックします。次のように表示されます 5 iosアプリからクラウドコードを呼び出す 次に、アプリからこのクラウド関数を呼び出すためのコードを書きます。このタスクを完了するには、シミュレーターと物理デバイスの両方が必要です。シミュレーターで実行されているアプリからクラウド関数を呼び出し、物理デバイスにプッシュが表示されるのを確認します。物理デバイスは、プッシュを確認するためにロック画面がオンの状態で閉じている必要があります。プッシュを受信しているときに、プッシュを送信しているアプリの中にいる場合、画面にはプッシュが表示されません。 プロジェクトのviewcontroller mファイルを開きます。ファイルの先頭に「#import \<parse/parse h>」というコードを追加して、ビューコントローラーにparseを含める必要があります。 viewcontroller 3\ 次に、viewcontroller mファイルでviewdidappearメソッドからアラート関数を呼び出します。アラートは、デバイスにプッシュを送信するクラウドコードをトリガーすることを可能にします。viewdidload関数の後に次のコードブロックを含めることを確認してください。 viewcontroller m 4\ シミュレーターでアプリを実行し、プッシュを送信するかどうかのアラートが表示されたら「ok」を押します。物理デバイスのロック画面にプッシュが表示されるはずです。 6 rest apiからクラウドコードを呼び出す rest apiは、cloud機能が動作しているかどうかをテストするための迅速かつ簡単な方法を提供します。 以下のコードをターミナルまたはコマンドプロンプトで使用してください コマンドラインの使い方を始める方法について詳しく知るには、 linux をクリックしてください、 macos または windows をクリックしてください。 プッシュ通知をテストするには、デバイスが閉じている間にrestコードを使用してください。 7 ユーザーオブジェクトを使用してターゲットプッシュ通知を送信する 今後は、基本的なサインアップとサインイン機能がすでに構築された別のiosプロジェクトを使用します。このiosプロジェクトを使用して、ユーザーがログインしているかどうかを検出し、ログインしている場合は、クエリ用のオブジェクトidへのリンクとともにインストールを保存する方法をお見せします。このセクションのチュートリアルで構築された完全なiosプロジェクトは、私たちの githubリポジトリ からダウンロードできますが、back4appダッシュボードからプッシュを送信する方法を説明した前のチュートリアルのすべてのセットアップを行う必要があります。 新しいバージョンのアプリをセットアップし、アプリにサインアップまたはログインします。まず、githubから動作するテンプレートをダウンロードしてください。 githubリポジトリ からダウンロードします。このアプリのすべての構築手順を説明するのではなく、クラウドコードの設定とその動作理由に焦点を当てます。この新しいアプリを開いたら、必ず自分のアプリの資格情報をappdelegate mファイルに入力してください。 appdelegate m 2\ このアプリは、前のアプリとの間にいくつかの大きな違いがあります。アプリにログインしている場合と、アプリにログインしていない場合の2つのセクションがあります。次の大きな変更は、appdelegate mファイルの関数「didregisterforremotenotificationswithdevicetoken」です。ユーザーのオブジェクトidをインストールオブジェクトの一部として保存する1行を追加しました。これにより、どのユーザーがどのインストールオブジェクトに関連付けられているかを知ることができ、プッシュ通知のターゲットを個別に設定できます。 appdelegate m 3\ 現在、ユーザーのオブジェクトidをインストールオブジェクトの一部として保存しているため、ユーザーがログインするまで新しいプッシュトークンを要求したくありません。appdelegate mファイルの関数「application didfinishlaunchingwithoptions」から直接トークンを要求したくなく、代わりにloggedinviewcontrollerの関数「viewdidappear」から呼び出したいと思います。「viewdidappear」では、appdelegateの関数を呼び出してappleからプッシュ通知トークンへのアクセスを要求します。このセクションはログインしているときにのみ表示できるため、インストールオブジェクトを作成し、オブジェクトidを取得する際にユーザーがログインしていると仮定できます。 loggedinviewcontroller appdelegate m 4\ さて、サインアップまたはログインします。あなたの物理デバイス (iphoneまたはipad) でアプリを起動します。以下の画像が表示されるはずです。新しいユーザーを作成するためにサインアップするか、すでにアプリでユーザーを作成している場合はサインインしてください。 このように見えるはずです ログインビューコントローラーが表示されるはずです。このように見えるはずです。 自分にプッシュを送ろうとすると、まだ機能しません。なぜなら、クラウドコードにそのメソッドを追加していないからです。次にそれを行います。 8 ターゲットプッシュメソッドをクラウドコードに追加する 以前に作成したmain jsファイルを開き、ユーザーidでインストールをターゲットにするための以下の関数を追加します。 この操作には、 マスターキー を使用する必要があります。 次のコードはこれらのステップを実行します parse server 3 x // main js 1 parse cloud define('sendpushtoyourself', (request) => { 2 let userid = request user id; 3 4 let query = new parse query(parse installation); 5 query equalto("userid", userid); 6 query descending("updatedat"); 7 return parse push send({ 8 where query, 9 data { 10 title "hello from the cloud code", 11 alert "back4app rocks! single message!", 12 } 13 }, { usemasterkey true }); 14 }); 15 16 parse cloud define('sendpushtoallusers', (request) => { 17 let currentuser = request user; 18 let userids = \[currentuser id]; 19 20 let query = new parse query(parse installation); 21 query containedin('userid', userids); 22 return parse push send({ 23 where query, 24 data { 25 title "hello from the cloud code", 26 alert "back4app rocks! group message!", 27 } 28 }, { usemasterkey true }); 29 }); parse server 2 x //main js 1 parse cloud define('sendpushtoyourself', function (request, response) { 2 var currentuser = request user; 3 var userid = currentuser id; 4 5 var query = new parse query("installation"); 6 query equalto("userid", userid); 7 query descending("updatedat"); 8 parse push send({ 9 where query, 10 data { 11 title "hello from the cloud code", 12 alert "back4app rocks! single message!", 13 } 14 }, { 15 usemasterkey true, 16 success function () { 17 response success("success sending a single push!"); 18 }, 19 error function (error) { 20 response error(error code + " " + error description); 21 } 22 }); 23 }); 24 25 parse cloud define('sendpushtoallusers', function (request, response) { 26 var currentuser = request user; 27 var userids = \[currentuser id]; 28 29 var query = new parse query(parse installation); 30 query containedin('userid', userids); 31 parse push send({ 32 where query, 33 data { 34 title "hello from the cloud code", 35 alert "back4app rocks! group message!", 36 } 37 }, { 38 usemasterkey true, 39 success function () { 40 response success('success sending a group push!'); 41 }, 42 error function (message) { 43 response error(error code + " " + error description); 44 } 45 }); 46 }); 9 クラウドコードにアップロード アプリに移動して back4appのウェブサイト をクリックします ダッシュボード ダッシュボード 「 cloud code cloud code 」を見つけて、 functions & web hosting functions & web hosting をクリックします。次のようになります 3\ 新しいファイルをアップロードまたは作成します(現在の main js main js ファイルをブラウザ上で直接編集することもできます)。次に、ここに示されているように デプロイ デプロイ をクリックします。 10 自分にターゲットプッシュ通知を送信できることをテストする ロック画面がオンの状態で物理デバイスを閉じたまま、シミュレーターからアプリを開きます。‘自分にプッシュを送信’ボタンと‘グループの人々にプッシュを送信’ボタンを押すことで、両方のプッシュ機能が動作していることをテストできます。デバイスのロック画面にプッシュが表示されるはずです。 最終的な考え これでチュートリアルは終了です。ユーザーのチャンネルやユーザーのオブジェクトid、またはユーザーのオブジェクトidを取得することに関する他のクエリに基づいてプッシュを送信する方法をしっかりと理解しているはずです。ユーザーのオブジェクトidを保存するには、プッシュインストールに追加し、ユーザーがログインしているときのみプッシュトークンを要求する必要があることを忘れないでください。クエリを介してプッシュを送信する際は、デフォルトで100件の結果に制限されており、一部のユーザーは複数のインストールオブジェクトを持っている可能性があることに注意してください。また、100件を超えるインストールオブジェクトの配列にプッシュを送信することは推奨されません。そうすると、一部のプッシュが送信されない可能性があります。大規模なグループの人々を扱う場合は、チャンネルを使用するか、繰り返しリクエストでプッシュを送信する方が良いです。 完了しました! この段階で、back4appを通じてcloud codeを使用してプッシュ通知を送信できます!おめでとうございます!