带电容器的 Ionic 5 推送通知

Posted

技术标签:

【中文标题】带电容器的 Ionic 5 推送通知【英文标题】:Ionic 5 push notifications with Capacitor 【发布时间】:2020-03-24 01:24:41 【问题描述】:

我的 Ionic 5 应用想要发送推送通知。我能找到的唯一指南是Using Push Notifications with Firebase in an Ionic + Angular App

为什么需要 Firebase?我可以在没有 Firebase 的情况下发送推送通知吗?

我还是尝试了这个设置。我没有走很远。

指南有这个代码:

    // Request permission to use push notifications
    // ios will prompt user and return if they granted permission or not
    // android will just grant without prompting
    PushNotifications.requestPermission().then( result => 
      if (result.granted) 
        // Register with Apple / Google to receive push via APNS/FCM
        PushNotifications.register();
       else 
        // Show some error
      
    );

但是,Typescript 抱怨正确的方法是 requestPermissions() 而不是 requestPermission()

在 XCode 中运行时两者都失败,可能是因为我没有设置 pod。

Ionic 5 + Capacitor 有哪些选项可以在不使用 Firebase 的情况下发送推送通知?

【问题讨论】:

【参考方案1】:

编辑:

该指南现已更新为 Capacitor 3。

电容器2指南可以找到here

旧: 指南已更新至电容器 2,但电容器 2 仍处于测试阶段。

使用下一个标签安装它

npm install @capacitor/cli@next
npm install @capacitor/core@next
npm install @capacitor/ios@next
npm install @capacitor/android@next

Capacitor 默认使用 APNS,因此如果您不在 AppDelegate.swift 中进行更改,它应该可以正常工作。

【讨论】:

为什么需要 Firebase?我可以不通过 Firebase 直接通过 Apple/Android 通知中心发送通知吗? 这是一个 firebase 指南,因为人们想知道如何在 iOS 上使用 firebase,并且有人编写了该指南,但正如我所说,iOS 默认使用 APNS(Apple Push Notification Service)。 Android 使用 firebase 是因为 google 说你必须使用它,他们在一年前杀死了 GCM,不确定“android 通知中心”是什么 无论你使用APNS还是firebase,电容器代码都是一样的,但是指南解释了如何添加依赖以及如何获取firebase令牌,只要你不进行原生更改相同的 javascript 代码将起作用

以上是关于带电容器的 Ionic 5 推送通知的主要内容,如果未能解决你的问题,请参考以下文章

使用 ionic4-5 项目进行推送通知的最佳方法是啥?

ionic2 推送通知错误:5 秒后设备未触发

Ionic Firebase 推送通知问题

Ionic 可以在没有推送服务的情况下接收推送通知吗?

在接收推送通知时获取数据 - ionic3

如何使用一个信号向离子和电容器推送通知添加自定义声音