Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PUSH通知の調査 #42

Open
yuki-hinata opened this issue May 6, 2022 · 6 comments
Open

PUSH通知の調査 #42

yuki-hinata opened this issue May 6, 2022 · 6 comments
Assignees

Comments

@yuki-hinata
Copy link
Owner

yuki-hinata commented May 6, 2022

  • push通知にはローカル通知とリモート通知の2つがある。ローカル通知は指定されたコンテンツや配信条件に基づいてユーザーへ通知を送る。今回はローカル通知。

  • FCMを使うと自分でswiftなどのネイティブ言語で書かなければいけないので、厳しい。だが、expoが自動でそこの分岐もやってくれるので、expo-notificationを使う。

  • 参考サイト(expo-notification + cloud functions)

  • https://qiita.com/sei_sato/items/cb0bdb35a3eedc142219

  • https://docs.expo.dev/push-notifications/sending-notifications/

  • 参考サイト(FCM + Cloud function)

@yuki-hinata yuki-hinata self-assigned this May 6, 2022
@yuki-hinata
Copy link
Owner Author

yuki-hinata commented May 9, 2022

expoでプッシュ通知を送って、15分後に確認すると良い。devicenotRegistered。
toとbodyが必須。toにはtokenが入り、bodyには通知したい内容のメッセージを表示する。
push受信はとても大事。そこでどんなエラーが起きているのか?statusはどうなのかなどわかるので

@yuki-hinata
Copy link
Owner Author

yuki-hinata commented May 9, 2022

Appstateについて

フォアグラウンド→今自分が操作している画面のこと。例)twitterを見ているときは、「フォアグラウンドで twitterを開いている」と言える。
バックグラウンド→自分が操作していなくても通知が来たりするもののこと。例)lineとかは裏で開いていなくても、メッセージを受信したら通知が来る。これはlineがバックグラウンドで動いているからである。
これらを判断するのがappstate

manalink-appの163行目では、アプリが開かれている状況のときに
アプリの状態が変化したときにaddlistenerは呼ばれ、active→backgroundとか
また、163行目ではhttps://docs.expo.dev/push-notifications/receiving-notifications/
に書かれたことをやっている。

@yuki-hinata
Copy link
Owner Author

yuki-hinata commented May 9, 2022

@yuki-hinata

  • マナリンクの該当実装も大体は公式ドキュメントに基づいた形式で書かれているので、そこは良いと思う。pushtokenの使い方など、どこにどのように使われているのかをまだ理解できていないので、そこを理解しなければいけない。
  • setNotificationHandlerは内部で何をやっているのか→フォアグラウンドにいるときにalertやsoundを出すかどうかを設定している

@yuki-hinata
Copy link
Owner Author

constants.isDevice→実機かエミュレーターかを判断する。

@yuki-hinata
Copy link
Owner Author

yuki-hinata commented May 9, 2022

onCreateMessageNotification.tsx→これにpush通知を送る処理が書かれている。
push通知の受け取り方、送り方などはexpo-notificationの公式に書かれていることを参考にすれば良い。
問題は組み合わせ方→cloud functionsとexpo-notification

@yuki-hinata
Copy link
Owner Author

まずはtokenをエミュレータ上でも受け取れるようにする。→notification toolを使って通知を受信できるかを検証する→cloud function とsdk を組み合わせてやる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant