0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Amazon SNSを用いてAndroid(GMSとHMS)とiOSに対応したプッシュ通知の実装方法3―クライアント(Android-HMS)

Last updated at Posted at 2021-05-07

Amazon SNSを用いてAndroid(GMSとHMS)とiOSに対応したプッシュ通知の実装方法―クライアント(Android-HMS)

HMSデバイスでは、HMS Push Kitでプッシュ通知を配信できます。クライアント側の実装は https://developer.huawei.com/consumer/jp/doc/development/HMSCore-Guides/android-client-dev-0000001050042041 をご参照いただければと思います。ここではAWSとの連携部分を重点的に紹介します。

AWSとの連携要点

プッシュトークンは以下の2箇所で返ってきます。

class MainService: HmsMessageService() {
    override fun onNewToken(token: String?) {
        super.onNewToken(token)
        // ここでプッシュトークンをAWSに渡します
    }
}
val token = HmsInstanceId.getInstance(context).getToken(appId, "HCM")
if (token.isNotEmpty()) {
    // ここでプッシュトークンをAWSに渡します
}

この2箇所でプッシュトークンを受け取って、AWSに送ります。

仮にAWSでLambdaとAPI Gatewayで次のようなAPIを作ったとします。

API:https://your.domain.amazonaws.com/add-push-token
メソッド:POST
ヘッダー:Context-Type : application/json
リクエスト:

{
	"token": "Your Token",
	"token_type": "HMS"
}

そうしたら、クライアント側では、次のようにデータを送ります。

fun sendPushToken(
    context: Context,
    pushToken: String
) {
    val queue = Volley.newRequestQueue(context)
    val param = JSONObject().apply {
        put("token", pushToken)
        put("token_type", "FCM")
    }

    val postRequest: JsonObjectRequest = object : JsonObjectRequest(
        "https://your.domain.amazonaws.com/add-push-token",
        param,
        object : Response.Listener<JSONObject>{
            override fun onResponse(response: JSONObject?) {
                // プッシュトークンの送信が成功
            }
        },
        object : Response.ErrorListener{
            override fun onErrorResponse(error: VolleyError?) {
                // プッシュトークンの送信が失敗
            }
        }) {
    }

    queue.add(postRequest)
}

参考

Amazon SNSを用いてAndroid(GMSとHMS)とiOSに対応したプッシュ通知の実装方法
1―概要
2―クライアント(Android-GMS)
3―クライアント(Android-HMS)
4―クライアント(iOS-APNS)
5―サーバー(Amazon SNS:プッシュトークンの保存)
6―サーバー(Amazon SNS:プッシュトークンの管理:HMS)
7―サーバー(Amazon SNS:プッシュトークンの保存:HMS)
8―サーバー(Amazon SNS:プッシュ通知を配信)
9―サーバー(Amazon SNS:プッシュ通知を配信:HMS)
10―サーバー(Amazon SNS:プッシュ通知を配信:複数のデバイスに同時配信)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?