私のアプリでウェブプッシュプロトコルでウェブプッシュ通知を使用しようとしています。 VAPIDでプッシュAPIを使用するには、applicationServerKey
が必要です。JavaでVAPIDキーを生成し、JavaScript PushManagerに渡します。
PushManager subscribe
メソッドは、パラメータとしてVAPIDキー(公開キーのみ)を受け取り、サブスクリプションのエンドポイントとプッシュメッセージのキーを与えます。
VAPIDキーを生成するには、node.js(Google web-push
パッケージ)とopenssl
を使用しています。しかし私の使用例では、VAPIDキーはJava内で生成され、ブラウザから購読するためにJavaScriptに渡されるべきです。
私はVAPIDキーを生成するためにJavaで以下のコードを試しています。私は鍵を正常に作成できますが、生成された公開鍵(base64でエンコードされた文字列)を渡すと、
サービスワーカーを登録できません。 DOMException:私はこの問題を解決してください。..提供applicationServerKeyは有効ではありません
: 'をPushManager' on 'にサブスクライブ' の実行に失敗しました。私のJavaコードは以下の通りです。
ECNamedCurveParameterSpec parameterSpec =
ECNamedCurveTable.getParameterSpec("prime256v1");
KeyPairGenerator keyPairGenerator =
KeyPairGenerator.getInstance("ECDH", "BC");
keyPairGenerator.initialize(parameterSpec);
KeyPair serverKey = keyPairGenerator.generateKeyPair();
PrivateKey priv = serverKey.getPrivate();
PublicKey pub = serverKey.getPublic();`
System.out.println(Base64.toBase64String(pub.getEncoded()));
こんにちは - 任意の運?あなたも私にいくつかのポインタを提供することはできますか? – csharpnewbie