質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PWA(Progressive Web Apps)

PWA(Progressive Web Apps)は、アプリのようなWebサイトを指します。仕様が異なる様々なデバイスで表示でき、インストールも不要。さらに訪問し続けることでユーザーについて学び、強力なPWAとなります。

iPad

iPadは、Appleがデザインしたタブレット型コンピュータです。iPadアプリケーションは通常Xcode IDEのObjective-Cで書かれますが、iPadアプリケーションを組むためのほかのツールを使うことも可能です。

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Q&A

0回答

864閲覧

OneSignalにおいて、iOS、iPadのSafariのプッシュ通知で特定の条件で不具合が発生

hurozuki

総合スコア49

PWA(Progressive Web Apps)

PWA(Progressive Web Apps)は、アプリのようなWebサイトを指します。仕様が異なる様々なデバイスで表示でき、インストールも不要。さらに訪問し続けることでユーザーについて学び、強力なPWAとなります。

iPad

iPadは、Appleがデザインしたタブレット型コンピュータです。iPadアプリケーションは通常Xcode IDEのObjective-Cで書かれますが、iPadアプリケーションを組むためのほかのツールを使うことも可能です。

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

0グッド

0クリップ

投稿2023/05/16 01:03

編集2023/05/16 07:16

■本題

OneSignalを使用し、
Webアプリケーションにプッシュ通知機能を導入しました。
iOS および iPadOS の Safari の場合
以下の特定の場合にのみ、
条件を満たさないと端末にプッシュ通知が届きません。

条件が揃うと、
蓄積されたプッシュ通知が
堰を切ったように一気に届きます。

解決方法を教えてください。

■特定の場合

※フォアグラウンドの場合(admin.php以外のページの場合)
※バックグラウンド時(admin.php以外のページを表示してバックグラウンドにした場合)

■条件

・ウィンドウバックでadmin.phpへページ遷移
<a>,<input type="submit">でページ遷移

■補足

admin.php のみが次のファイルを読み取っています。

■試したこと

admin.php 以外のページで、
上記の補足に記載されている 3 つのファイルを読みました。
しかし、そうした場合
admin.phpを表示してもプッシュ通知が受信できなくなりました。

■コード

manifest.json

1{ 2 "$schema": "https://json.schemastore.org/web-manifest-combined.json", 3 "name": "name", 4 "short_name": "short_name", 5 "display": "fullscreen" 6 }

process_push_tokens.js

1 2 window.OneSignal = window.OneSignal || []; 3 OneSignal.push(function () { 4 5 OneSignal.init({ 6 appId: "my_app_id", 7 safari_web_id: "my_safari_web_id", 8 welcomeNotification: [ 9 { 10 title: "title", 11 message: "message" 12 } 13 ], 14 promptOptions: { 15 slidedown: { 16 prompts: [ 17 { 18 type: "push", 19 autoPrompt: false, // 自動表示しない 20 text: { 21 actionMessage: "xxx?", 22 acceptButton: "許可する", 23 cancelButton: "後で" 24 }, 25 delay: { 26 pageViews: 1, 27 timeDelay: 1 28 } 29 } 30 ] 31 } 32 } 33 }); 34 35 OneSignal.showSlidedownPrompt(); // 手動でダイアログを表示する 36 37 38 OneSignal.on('subscriptionChange', function (isSubscribed) { // プッシュ通知を許可した際の処理 39 if (isSubscribed) { 40 OneSignal.getUserId(function(userId) { 41 insert_token(userId); 42 }); 43 44 } 45 }); 46 });

■マルチポスト

上記サイトでも同じような質問をしています。
理由は、かなりニッチな質問なので、
解決できる確率を少しでも上げたいからです。
解決致しましたら当質問にも報告致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hurozuki

2023/05/16 06:55

対応致しました。 全く存じ上げていませんでした。 ご丁寧にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問