問題タブ [progressive-web-apps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
524 参照

javascript - GCM を介したプログレッシブ Web アプリでのプッシュ通知

プッシュ通知の送信中に ( Uncaught (in promise) ReferenceError: require is not defined(…)) エラーが発生しました。ここに私のコードがあります

エラーのスクリーンショット ここに画像の説明を入力してください

0 投票する
1 に答える
2551 参照

google-chrome - `pushManager.subscribe` と `pushManager.getSubscription` Service Worker の違いは何ですか

PushManager.getSubscription()

既存のプッシュ サブスクリプションを取得します。既存のサブスクリプションの詳細を含む PushSubscription オブジェクトに解決される Promise を返します。既存のサブスクリプションが存在しない場合、これは null 値に解決されます。

[...]

PushManager.subscribe()

プッシュ サービスにサブスクライブします。プッシュ サブスクリプションの詳細を含む PushSubscription オブジェクトに解決される Promise を返します。現在の Service Worker に既存のサブスクリプションがない場合は、新しいプッシュ サブスクリプションが作成されます。

pushManagerMDN のドキュメントによると。メソッドはほとんど同じですがgetSubcription()、null 値で解決される可能性がある点が異なります。

私は基本的に、単に使用できることを理解してsubscribe()おり、Service Worker は利用可能な場合はサブスクリプションを取得しようとし、利用できない場合は新しいサブスクリプションを作成します。

=>しかし、私は別のことをしようとしていました。nullI will tr​​y to subscribe itで解決した場合は、最初にサブスクリプションを取得してみます。

しかし、その後、エラーが発生しました:

Uncaught (in promise) DOMException: サブスクリプションが失敗しました - アクティブな Service Worker がありません

紛らわしいので、これが Service Worker の Push API での Chrome の制限であるか、バグである可能性があるのではないかと疑っています。この奇妙な振る舞いについて何か情報を持っている人はいますか?

0 投票する
0 に答える
108 参照

javascript - プログレッシブ Web アプリで GCM を介してプッシュ通知を送信する

これは、プログレッシブWebアプリでプッシュ通知を送信するための私のコードです。ボタンをクリックするとsendRequest()関数が呼び出され、通知が適切に送信されると、プロパティが機能します。しかし、プッシュイベントは発生しません。このコードに何か問題がありますか

0 投票する
2 に答える
815 参照

ajax - XHR 経由で通知を送信するように GCM にリクエストする方法

実際には、XHR を介して通知を送信するように GCM に要求したいです。すでに cURL ユーティリティを使用して GCM に要求していますが、XHR でそれを行う方法がわかりません。それを行う方法はありますか

0 投票する
2 に答える
1675 参照

ajax - Chrome でプッシュ通知を送信する方法 (Progressive Web Apps)

XHR と Javascript でプッシュ通知を行う方法を説明してください。または、プログレッシブ Web アプリでプッシュ通知を送信する他の方法はありますか。curl コマンドを作成しました。ターミナルで実行するとプッシュ通知が送信されますが、ボタンのクリックでそれを行うにはどうすればよいですか?

ここに私のcURLコマンドがあります:-

これは私が試したものです:-

しかし、エラーが表示されます ----- XMLHttpRequest cannot load https://android.googleapis.com/gcm/send。プリフライト要求への応答がアクセス制御チェックに合格しません: 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。したがって、オリジン「http://localhost:8880」へのアクセスは許可されていません。

0 投票する
2 に答える
1038 参照

push-notification - プッシュ通知を送信するためにサブスクライブしたエンドポイントを保存する方法

私はプッシュ通知に取り組んでおり、ユーザーが通知を購読すると、一意のエンドポイントが生成されます。これらのエンドポイントをデータベースに保存する方法を知りたいので、これらのエンドポイントを使用して、サブスクライブしているすべてのユーザーに通知を送信できます

0 投票する
1 に答える
77 参照

javascript - Web アプリでイベント追跡を処理するための最良の (パフォーマンスの高い) 方法

現在のシナリオ

SPA ウェブアプリの 1 つで、 POST リクエストを使用してバックエンドに情報を渡すカスタム トラッカー リクエストを使用してcta clicks、などのさまざまなユーザー アクションを追跡しています。page navigations

問題 現在、これらの追跡はインスタントを要求するため (非同期方式ですが、同じスレッドで実行されます)、これらの要求は同じページ スレッドで発生する他のイベントと競合します。

望ましい効果 理想的には、これらの追跡データを収集し、一定の時間間隔 (おそらく 1 分ごと) に単一の要求を送信できれば、クライアント側のパフォーマンスが大幅に向上し、追跡要求が行われるサーバーの負荷も軽減されます。送信されます。

ソリューション

  • Localstorage の使用 - 私の頭に浮かんだ即時の解決策の 1 つは、LocalStorage を使用して追跡データを保持することでした。この追跡データは、呼び出しが発生する直前にユーザーがページを離れても保持されます。しかし、問題は、 x secondsタイムアウトが原因で、ユーザーがタブを閉じて戻ってこない場合、データは localStorage にありますが、送信されないことです。

この望ましい効果を達成するのに役立つ適切な解決策はありますか? もしかしてbackgroundSyncAPI?