我一直在联合的一个项目上工作,而且我对iOS有一个问题。
我已经在我的游戏中实现了本地推送通知,它请求允许在游戏中稍后发送通知。在我实现Firebase消息传递之后,这个顺序发生了变化。现在,当游戏开始时,会出现通知权限提示符。
在游戏开始时,是否有一种方法可以防止Firebase请求通知权限?我想在稍后的比赛中请求许可。
提前谢谢。
发布于 2020-04-04 02:38:38
创建一个PostProcessBuild
,您可以在其中编辑info.plist
生成的XCode项目,并向false
添加条目设置FirebaseMessagingAutoInitEnabled
。您可以查看这以获得有关如何添加/编辑plist的更多信息。
另外,将对FirebaseMessaging
的任何引用移到您想要请求权限的游戏部分。
//If platform is not IOS, immediately set message listeners
#if !UNITY_IOS
SetPushNotificationListeners()
#endif
//Call this in the part of the game where you want the notifications to appear
public void SetPushNotificationListeners()
{
//You might need FirebaseMessaging.RequestPermissionAsync() for IOS as well
FirebaseMessaging.TokenReceived -= OnTokenReceived;
FirebaseMessaging.TokenReceived += OnTokenReceived;
FirebaseMessaging.MessageReceived -= OnMessageReceived;
FirebaseMessaging.MessageReceived += OnMessageReceived;
}
我从FirebaseMessagingAutoInitEnabled
中获得了文档,但在我以前的测试中,似乎对FirebaseMessaging
的任何引用都会请求权限。还要注意的是,这会延迟FirebaseMessaging
的初始化和请求权限,所以在实际收到任何推送通知之前,您可能不得不重新启动游戏(我目前还没有测试它,所以我不确定)。
发布于 2020-03-31 15:13:38
初始化Firebase不会触发权限对话框。您将希望检查代码中请求显示通知的授权的位置。
假设iOS 10或更高版本,在UNUserNotificationCenter上查找requestAuthorization调用。这将触发对推送通知的请求。
发布于 2020-06-10 19:23:51
每个具有FirebaseMessaging引用的调用,比如FirebaseMessaging.TokenReceived
或FirebaseMessaging.MessageReceived
,都会触发权限对话框。所以你必须尽可能地推迟那个电话。将FirebaseMessagingAutoInitEnabled
设置为false无助
https://stackoverflow.com/questions/60951759
复制相似问题