有啥方法可以在运行时更改 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 游戏服务中的推送通知权限?