unityでのプッシュ通知の実装をした際、アプリが起動したタイミングでプッシュ通知のタイマーの設定とプッシュ通知の番号の削除を行おうとしましたがこちらがうまくできません。
現在検討しているのが下記の①(プッシュ通知の番号の削除)を全プロジェクト内に実装し、
初めのスタート画面のみに下記の①と②(番号の削除とプッシュ通知タイマーの設定)を実装しようと考えております。
この場合でも、スタート画面を開かないことにはプッシュ通知のタイマーが設定されないので、どうして良いか手詰まりを起こしております、、
アドバイスをいただけますと幸いです、、
①
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5#if UNITY_ANDROID 6using Unity.Notifications.Android; 7 8#elif UNITY_IOS 9using Unity.Notifications.iOS; 10#endif 11 12public class Cancel : MonoBehaviour 13{ 14 // Start is called before the first frame update 15 void Start() 16 { 17 OnApplicationFocus(); 18 } 19 20 void OnApplicationFocus() 21 { 22#if UNITY_IOS 23 iOSNotificationCenter.ApplicationBadge = 0; 24#endif 25 } 26} 27
②
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4#if UNITY_ANDROID 5using Unity.Notifications.Android; 6 7#elif UNITY_IOS 8using Unity.Notifications.iOS; 9#endif 10 11 12 13public class Push : MonoBehaviour 14{ 15 // Start is called before the first frame update 16 void Start() 17 { 18 19 LocalNotificationWrapper.ReserveNotification("本文", "本文", 10); 20 21 } 22 23 24}
③
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5#if UNITY_ANDROID 6using Unity.Notifications.Android; 7 8#elif UNITY_IOS 9using Unity.Notifications.iOS; 10#endif 11 12/// <summary> 13/// ローカルプッシュ通知 14/// </summary> 15public static class LocalNotificationWrapper 16{ 17 private static bool _isInitialized; 18 19 20 21#if UNITY_ANDROID 22 // 通知チャンネルID 23 // 本サンプルはシングルチャンネルです 24 private static string ChannelId = "channelId"; 25#endif 26 public static void InitializeIfNeed() 27 { 28 if (_isInitialized) 29 { 30 return; 31 } 32 33 _isInitialized = true; 34#if UNITY_ANDROID 35 // 通知チャンネルの登録 36 AndroidNotificationCenter.RegisterNotificationChannel( 37 new AndroidNotificationChannel 38 { 39 Id = ChannelId, 40 Name = "Default ChannelName", 41 Importance = Importance.High, 42 Description = "Channel Description", 43 // 1を指定してもバッジがつかない... 44 Numbrer = 1, 45 }); 46#endif 47 } 48 49 /// <summary> 50 /// ローカル通知の予約 51 /// </summary> 52 public static void ReserveNotification( 53 string title, 54 string body, 55 int afterSec 56 ) 57 58 59 60 { 61 InitializeIfNeed(); 62#if UNITY_ANDROID 63 // 通知を送信する 64 AndroidNotificationCenter.SendNotification(new AndroidNotification 65 { 66 Title = title, 67 Text = body, 68 // アイコンをそれぞれセット 69 SmallIcon = "icon_0", 70 LargeIcon = "icon_1", 71 // 今から何秒後に通知をするか? 72 FireTime = System.DateTime.Now.AddSeconds(afterSec) 73 }, ChannelId); 74 75#endif 76 77 78 79#if UNITY_IOS 80 iOSNotificationCenter.ScheduleNotification(new iOSNotification() 81 { 82 Title = title, 83 Body = body, 84 ShowInForeground = true, 85 Badge = 1, 86 // 時間をトリガーにする 87 Trigger = new iOSNotificationTimeIntervalTrigger() 88 { 89 TimeInterval = new System.TimeSpan(0, 0, afterSec), 90 Repeats = false 91 } 92 93 94 95 }); 96 97 98 99#endif 100 } 101 102 103} 104
あなたの回答
tips
プレビュー