有啥方法可以在运行时更改 ios 上推送通知的权限?

Posted

技术标签:

【中文标题】有啥方法可以在运行时更改 ios 上推送通知的权限?【英文标题】:is there any way to change permission for push notifications on ios at runtime?有什么方法可以在运行时更改 ios 上推送通知的权限? 【发布时间】:2020-11-26 14:18:24 【问题描述】:

我在 ionic 中创建了一个使用 firebase 推送通知的应用程序。 如果用户安装应用程序,系统会询问他是否允许发送推送通知的权限,从那一刻起,firebase 将保持权限状态,直到用户卸载应用程序。 有没有办法改变运行时权限? 用例是:我安装了应用程序并且没有授予推送通知权限,我使用它,我意识到我想要通知,现在我该如何更改权限?

【问题讨论】:

【参考方案1】:

您可以在“设置 > 应用程序 > 通知”中更改它。

【讨论】:

【参考方案2】:

一旦用户拒绝了推送通知的权限,只能通过打开Settings > Your App > Notifications来更改,这意味着用户需要手动进行。

但是有一些 Cordova 插件可以帮助您。例如 Diagnostic plugin 有一个名为 switchToSettings 的方法:

打开此应用的设置页面。

android 上,这会在“设置”应用中打开“应用信息”页面。

ios 上,这会在“设置”应用中打开应用设置页面。

因此您可以使用该插件自动打开设置页面,以便用户可以启用通知:

this.firebasePlugin.grantPermission().then((hasPermission) => 
  if(!hasPermission) 
    // Show some message to the user telling that 
    // your app will open the settings and then...
    this.diagnosticPlugin.switchToSettings();
  
);

【讨论】:

你的答案是“如果用户先前拒绝访问,应用程序可以做什么。但 OP 提出的问题是“我如何 [用户] 更改权限?” 这是一个很好的观点 :)... 但是由于用户提到他使用 Ionic 创建了一个应用程序,我认为他有兴趣了解如何允许该应用程序中的用户更改权限。跨度> firebasePlugin.hasPermission 从设备设置或 fcm 服务器读取? @EmanueleGaleotti 我更新了答案以改用grantPermission 方法,但它们都以类似的方式工作:结果是true/false,基于当前设备是否正在使用该应用程序是否已授予您的应用权限。

以上是关于有啥方法可以在运行时更改 ios 上推送通知的权限?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 上禁用 Google Play 游戏服务中的推送通知权限?

有啥方法可以更改通知图像

当 iOS 10 应用程序在后台时,有啥方法可以触发本地通知?

iOS - 在收到推送通知事件时更改视图的内容

修改推送通知的权限请求对话框

当我将新闻添加到我的 Firebase 时,有啥方法可以自动发送推送通知