首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止Firebase消息传递请求在iOS/Unity上获得推送通知权限

如何防止Firebase消息传递请求在iOS/Unity上获得推送通知权限
EN

Stack Overflow用户
提问于 2020-03-31 13:29:05
回答 3查看 2.8K关注 0票数 2

我一直在联合的一个项目上工作,而且我对iOS有一个问题。

我已经在我的游戏中实现了本地推送通知,它请求允许在游戏中稍后发送通知。在我实现Firebase消息传递之后,这个顺序发生了变化。现在,当游戏开始时,会出现通知权限提示符。

在游戏开始时,是否有一种方法可以防止Firebase请求通知权限?我想在稍后的比赛中请求许可。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-04 02:38:38

创建一个PostProcessBuild,您可以在其中编辑info.plist生成的XCode项目,并向false添加条目设置FirebaseMessagingAutoInitEnabled。您可以查看以获得有关如何添加/编辑plist的更多信息。

另外,将对FirebaseMessaging的任何引用移到您想要请求权限的游戏部分。

代码语言:javascript
运行
复制
//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的初始化和请求权限,所以在实际收到任何推送通知之前,您可能不得不重新启动游戏(我目前还没有测试它,所以我不确定)。

票数 1
EN

Stack Overflow用户

发布于 2020-03-31 15:13:38

初始化Firebase不会触发权限对话框。您将希望检查代码中请求显示通知的授权的位置。

假设iOS 10或更高版本,在UNUserNotificationCenter上查找requestAuthorization调用。这将触发对推送通知的请求。

票数 1
EN

Stack Overflow用户

发布于 2020-06-10 19:23:51

每个具有FirebaseMessaging引用的调用,比如FirebaseMessaging.TokenReceivedFirebaseMessaging.MessageReceived,都会触发权限对话框。所以你必须尽可能地推迟那个电话。将FirebaseMessagingAutoInitEnabled设置为false无助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60951759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档