问题标签 [android-push-notification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
26 浏览

amazon-web-services - 服务器在 Android 和 IOS 推送通知中的作用是什么?

我对推送通知的概念有点困惑,我的意思是我可以在我的应用程序上线后从 firebase 控制台向所有注册用户发送通知。如果是,那么如果我们可以直接从 firebase 控制台发送通知,那么服务器(如 MS Azure 或 AWS 等)的作用是什么?如果否,那么为什么以及使用此服务的最佳方式是什么?

我真的需要合乎逻辑的解释。

请回答我。谢谢

0 投票
1 回答
2049 浏览

android - 使用 cURL https://fcm.googleapis.com/fcm/send 时,Firebase 推送通知未播放声音

当我使用 Firebase 控制台时,通过激活“高级选项”下的“声音”,一切都很完美,正如 Mouad Abdelghafour AitAli 在Firebase Push notification is not play sound when app is in background中接受的答案中所写的最佳答案所解释的那样。当我使用 cURL 向端点发出请求时https://fcm.googleapis.com/fcm/send,我收到了通知,唯一的问题是通知没有播放声音。这就是我从命令提示符发送通知的方式:

注意我是如何使用\"sound\":\"default\"的,但通知仍然没有播放声音。正如我所提到的,它可以在 Firebase 控制台上运行,所以我试图理解为什么它不能从命令行使用 cURL。谢谢你。

0 投票
1 回答
915 浏览

firebase - 将设备令牌注册 ID 从 Urban Airship 迁移到 Firebase Cloud Messaging

从 Urban Airship Offboarding 文件中,我收到了以下信息:

我们很遗憾看到您离开,但希望您能顺利过渡。以下是您需要注意的一些事项: 进行 API 调用以访问您的所有设备令牌和 GCM 注册 ID。为什么?这将提供转换这些令牌和 ID 的能力,因此如果客户拥有 App Bundle ID,则不会提示已在 iOS 上选择推送通知的设备再次这样做。http://docs.urbanairship.com/api/ua.html#device-listing

通过使用 GET /api/apids 和http://docs.urbanairship.com/api/ua.html#device-listing的“APID 列表”标题下的信息,我能够成功获取注册到我的应用程序的 Android APID 。但是,我不确定如何在 Firebase Cloud Messaging 中使用 APID。我想要的是从 Urban Airship 获取我的所有设备令牌和 Firebase Cloud Messaging 注册 ID,但不是 Urban Airship 独有的值。我的印象是,APID 是 Urban Airship 独有的,就像 Channel ID(在 Java 中通过UAirship.shared().getPushManager().getChannelId()) 也是 Urban Airship 独有的。我正在尝试从 Urban Airship 导出设备令牌,以便我可以独立于 Urban Airship 从 Firebase Cloud Messaing 使用它们。换句话说,我想从 Urban Airship 迁移设备。FirebaseInstanceId.getInstance().getToken()有没有办法以方法返回它们的相同格式获取设备令牌?该格式如下所示:

f32EVa9yfbo:AJA91bFg53ZuQLWYSDDqPlkf4a88Lu6Gp4DoXVDJ2wRIlnjDngq0UdNnlSi7wxbbut6YX7Z1kmvyS3bhk_Zrl-1doHCf5XFdOXTThNzo4sXASWqQjHKfNa3pH2Js4Zlbf_CtRkD2Peho

谢谢你。

更新 1:

我找到了一种获取 GCM 注册 ID 的方法:

步骤 1.GET /api/apids用于获取注册到此应用程序的 Android APID 以及相关元数据:

结果是一个包含许多 apid 的长数组

步骤 2.GET /api/apids/(APID)用于获取有关特定 Android APID 的信息

现在,我看到以 Firebase Cloud Messaging 可以识别为设备令牌 ID 的格式返回的内容,并且我可以在没有 Urban Airship 的情况下使用它从 Firebase Cloud Messaging 发送推送通知:

bIY0GH6-hqk:APA91bH2xUBtlfga2kBG0GjvjbBYrI3M72BbXc3tTo7pSuY61w1wrgOeTbEqEd5J2SmUcQx25uU8TafWk2tDP7Vf7bc0ZsQrtENlFJDNIb--LUVuZimjOegyaepPYuQvm_9g

现在,我看到的复杂情况是,正如您在上面看到的,我必须提供特定的 APID 才能接收该gcm_registration_idAPID。当我只使用上面第 1 步中的示例时,我在返回的数组中GET /api/apids没有得到任何结果。gcm_registration_id这使得获取gcm_registration_id值的过程变得非常乏味和冗长,因为对于我在步骤 1 中编写的“GET /api/apids”返回的每个 APID,我必须使用GET /api/apids/(APID)我在步骤 2 中编写的示例。如果例如,我有 70,000 个 APID 值,除非我编写脚本或以某种方式自动执行下载 APID 的过程,否则我将不得不执行这个繁琐的过程 70,000 次。有可能当我GET /api/apids在步骤 1 中使用时,我可以立即将其作为元数据中数组的一部分接收,gcm_registration_id价值观?这将有助于下载gcm_registration_id值的过程,以便我可以在 Firebase Cloud Messaging 中使用它们。

此外,如果我看到的值是我可以在 Firebase 云消息传递中使用的设备令牌 ID 值,我希望收到确认,gcm_registration_id以便在不使用 Urban Airship 的情况下向设备发送推送通知。

更新 2:

问题是我需要使用https://go.urbanairship.com/api/apids/{apid}才能查看这些gcm_registration_id值,我不想这样做,因为如果我有 70,000 个注册设备,我将不得不进行 70,000 个 cURL 查询,为 70,000 个{apid}值中的每一个提供 70,000 次。这将需要永远!如果我只使用https://go.urbanairship.com/api/apids/without {apid},则返回的数组不包含gcm_registration_id值。

更新 3:

解决方案是编写 Java 代码并请求https://go.urbanairship.com/api/apids以获取并存储 APID 值数组,然后将该数组的每个元素{apid}作为请求以https://go.urbanairship.com/api/apids/{apid}获取注册到我的应用程序的所有 GCM/FCM 设备令牌?我猜对https://go.urbanairship.com/api/apids的单个 cURL 请求可能不足以获取注册到我的应用程序的所有 GCM/FCM 设备令牌;Java 代码中的请求、数组和循环可能是获取我尝试下载的令牌所必需的。如果有人能证实这一点,我将不胜感激。

0 投票
3 回答
2973 浏览

android - 如何显示与服务器一起发送的 FCM Firebase 通知

Firebase 提供了两种发送推送通知的方法,使用它的 firebase 控制台和使用之前在 GCM 中使用的服务器。现在我们正在将我们的服务器从 GCM 转换为 Firebase,我们需要在应用程序中接收和显示 FCM 通知。

我已经完成了官方 firebase 网站的实施,并完成了示例代码,但我被困在这部分。当我们的服务器将推送通知发送到 Firebase,并将 Firebase 发送到我的应用程序时,我在onMessageReceived方法中接收到带有RemoteMessage参数的通知。我知道消息在 RemoteMessage 参数中,但我在 Firebase 官方文档中找不到任何关于如何处理此问题以在 android 设备通知栏上显示通知文本的指南或示例代码。

正如您在官方指南中看到的那样,没有说明如何从 RemoteMessage 参数中毫无问题地提取消息。我知道您可以在里面搜索并找到字符串,但我想找到有关如何正确安全地处理此问题的官方指南。

在官方文档中你只有这个:

而这个(指南上没有提到):

0 投票
1 回答
943 浏览

android - 如何在多个 android firebase 项目中使用相同的 google-service.json 文件?

我想在多个项目中使用 google-service.json 文件,是否可以在多个项目中使用相同的 google-service.json?如果可能的话,我们该怎么做?

0 投票
1 回答
611 浏览

android - 在 Android 自定义操作系统中未收到 FCM 推送通知

谁能帮我解决这个问题...

我已经在我的项目中实现了 FCM 功能。它通常适用于所有默认的 android OS 版本。moto、nexus、redmi等手机,

但是我在oppo、vivo、一加3、荣耀等都安装了同样的apk,(定制OS)。我没有从我的应用程序中收到任何通知。

为什么会这样。我还检查了其他一些应用程序,如 inshorts、dailyhunt 等,它们在定制的操作系统中获得推送通知。

我已经尝试了所有给定的解决方案。1.允许我的应用进行电池优化。(荣誉) 2. 允许我的应用程序作为非受保护应用程序。3. 将我的应用从列表中列入白名单。

这些都在工作..

但我需要在不这样做的情况下获得推送通知......比如 inshorts、dailyhunt、whatsapp、fb 等,

找了这么久。请帮我解决这个问题。

提前致谢。

0 投票
1 回答
2310 浏览

android - Google FCM 令牌保存数据库

我正在开发一个带有用户登录和推送通知功能的 android 应用程序。

因此,根据文档,我创建了一个 FCM 帐户并创建了一个用于保存访问令牌的数据库。

用户表

访问令牌表

我刚刚为访问令牌创建了单独的表,因为用户可以从任意数量的设备登录。

我在“用户登录”过程中请求并保存访问令牌。

所以我的问题是。

  1. 我听说,当用户清除应用程序数据时,生成的访问令牌将丢失。是真的吗?如果是,我需要在哪个过程中保存访问令牌?

  2. 是否有任何推荐的方法来保存针对用户的多路访问令牌?

  3. 每天发送的通知有限制吗?

提前致谢

0 投票
2 回答
955 浏览

android - 当用户从我的 PreferenceActivity(SettingActivity) 中选择选项时,如何隐藏通知

我正在为我的 SettingActivity 使用 Preferences 概念,并且我有一个 SwitchPreference 切换按钮用于通知开/关,但是当用户切换到关闭通知时,可以编写关闭通知的代码。

0 投票
1 回答
1566 浏览

javascript - 无法在反应本机应用程序上收到任何推送通知

我正在为 android 和 iOS 使用一个分离的 react 本机移动应用程序,我已经获得了 API 来调用推送通知,但我对“token”参数感到困惑,我只是不知道“token”是什么字段,它是设备 ID 唯一编号吗?如果是这样,我如何从反应原生生成这个令牌?

如果推送通知是完全从前端(反应本机)处理的东西还是后端工作,我也有点困惑!

如何在现实生活中的应用程序中实现推送通知。

0 投票
2 回答
837 浏览

android - 手机空闲时收到推送通知后的网络改造 2 呼叫

假设我的应用程序从带有项目 ID 的服务器接收推送通知。收到推送通知项目的详细信息后,必须从服务器获取(使用改造),然后显示 Android 通知。当电话不空闲时,这非常简单。

但是当我锁定手机并保持这种状态时会发生什么?一段时间后手机进入睡眠状态。应该会收到推送通知。但让我心烦意乱的是改造电话。应用程序会保持清醒直到我完成 - 处理 - 改造调用,还是在处理它时它可以被“杀死”?它与所谓的WakeLock有什么关系吗?还是首先使用改造是一种不好的方法?我找不到任何可以帮助我理解的好文章或示例。