问题标签 [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.
amazon-web-services - 服务器在 Android 和 IOS 推送通知中的作用是什么?
我对推送通知的概念有点困惑,我的意思是我可以在我的应用程序上线后从 firebase 控制台向所有注册用户发送通知。如果是,那么如果我们可以直接从 firebase 控制台发送通知,那么服务器(如 MS Azure 或 AWS 等)的作用是什么?如果否,那么为什么以及使用此服务的最佳方式是什么?
我真的需要合乎逻辑的解释。
请回答我。谢谢
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。谢谢你。
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_id
APID。当我只使用上面第 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 代码中的请求、数组和循环可能是获取我尝试下载的令牌所必需的。如果有人能证实这一点,我将不胜感激。
android - 如何显示与服务器一起发送的 FCM Firebase 通知
Firebase 提供了两种发送推送通知的方法,使用它的 firebase 控制台和使用之前在 GCM 中使用的服务器。现在我们正在将我们的服务器从 GCM 转换为 Firebase,我们需要在应用程序中接收和显示 FCM 通知。
我已经完成了官方 firebase 网站的实施,并完成了示例代码,但我被困在这部分。当我们的服务器将推送通知发送到 Firebase,并将 Firebase 发送到我的应用程序时,我在onMessageReceived
方法中接收到带有RemoteMessage
参数的通知。我知道消息在 RemoteMessage 参数中,但我在 Firebase 官方文档中找不到任何关于如何处理此问题以在 android 设备通知栏上显示通知文本的指南或示例代码。
正如您在官方指南中看到的那样,没有说明如何从 RemoteMessage 参数中毫无问题地提取消息。我知道您可以在里面搜索并找到字符串,但我想找到有关如何正确安全地处理此问题的官方指南。
在官方文档中你只有这个:
而这个(指南上没有提到):
android - 如何在多个 android firebase 项目中使用相同的 google-service.json 文件?
我想在多个项目中使用 google-service.json 文件,是否可以在多个项目中使用相同的 google-service.json?如果可能的话,我们该怎么做?
android - 在 Android 自定义操作系统中未收到 FCM 推送通知
谁能帮我解决这个问题...
我已经在我的项目中实现了 FCM 功能。它通常适用于所有默认的 android OS 版本。moto、nexus、redmi等手机,
但是我在oppo、vivo、一加3、荣耀等都安装了同样的apk,(定制OS)。我没有从我的应用程序中收到任何通知。
为什么会这样。我还检查了其他一些应用程序,如 inshorts、dailyhunt 等,它们在定制的操作系统中获得推送通知。
我已经尝试了所有给定的解决方案。1.允许我的应用进行电池优化。(荣誉) 2. 允许我的应用程序作为非受保护应用程序。3. 将我的应用从列表中列入白名单。
这些都在工作..
但我需要在不这样做的情况下获得推送通知......比如 inshorts、dailyhunt、whatsapp、fb 等,
找了这么久。请帮我解决这个问题。
提前致谢。
android - Google FCM 令牌保存数据库
我正在开发一个带有用户登录和推送通知功能的 android 应用程序。
因此,根据文档,我创建了一个 FCM 帐户并创建了一个用于保存访问令牌的数据库。
用户表
访问令牌表
我刚刚为访问令牌创建了单独的表,因为用户可以从任意数量的设备登录。
我在“用户登录”过程中请求并保存访问令牌。
所以我的问题是。
我听说,当用户清除应用程序数据时,生成的访问令牌将丢失。是真的吗?如果是,我需要在哪个过程中保存访问令牌?
是否有任何推荐的方法来保存针对用户的多路访问令牌?
每天发送的通知有限制吗?
提前致谢
android - 当用户从我的 PreferenceActivity(SettingActivity) 中选择选项时,如何隐藏通知
我正在为我的 SettingActivity 使用 Preferences 概念,并且我有一个 SwitchPreference 切换按钮用于通知开/关,但是当用户切换到关闭通知时,可以编写关闭通知的代码。
javascript - 无法在反应本机应用程序上收到任何推送通知
我正在为 android 和 iOS 使用一个分离的 react 本机移动应用程序,我已经获得了 API 来调用推送通知,但我对“token”参数感到困惑,我只是不知道“token”是什么字段,它是设备 ID 唯一编号吗?如果是这样,我如何从反应原生生成这个令牌?
如果推送通知是完全从前端(反应本机)处理的东西还是后端工作,我也有点困惑!
如何在现实生活中的应用程序中实现推送通知。
android - 手机空闲时收到推送通知后的网络改造 2 呼叫
假设我的应用程序从带有项目 ID 的服务器接收推送通知。收到推送通知项目的详细信息后,必须从服务器获取(使用改造),然后显示 Android 通知。当电话不空闲时,这非常简单。
但是当我锁定手机并保持这种状态时会发生什么?一段时间后手机进入睡眠状态。应该会收到推送通知。但让我心烦意乱的是改造电话。应用程序会保持清醒直到我完成 - 处理 - 改造调用,还是在处理它时它可以被“杀死”?它与所谓的WakeLock有什么关系吗?还是首先使用改造是一种不好的方法?我找不到任何可以帮助我理解的好文章或示例。