我阅读了很多关于如何使用Cordova(和Ionic 2)实现推送通知的文章,而且我不确定如何在不使用谷歌推送服务器的情况下在中国实施。
我认为使用https://github.com/phonegap/phonegap-plugin-push是一个好主意。但是所有的Howtos都专注于在Google的FCM中创建一个在中国并不真正有用的帐户。我怀疑中国手机使用谷歌来查询通知。这导致了我的下一个问题。
由于以下原因,我假设所有平台(Android,iOS和Windows)和供应商只有一个集中推送服务:
但Apple,Google和Microsoft都使用相同的推送服务吗?我对此表示怀疑,这让我感到困惑。此外,如果我在中国,由于谷歌的服务在这里不稳定,在中国发行的Android手机不使用谷歌甚至不安装谷歌Play商店。
当我在德国手机(Android)上安装中文应用程序(在中国托管)时,即使我显然是从谷歌的推送服务器进行轮询,我仍会收到该应用的所有通知。这意味着,中文应用的通知消息会以某种方式传递给Google。
对此的唯一解释是不同的推送服务正在协同工作。是这样吗?如果是这样,我创建一个帐户(Google FCM:https://medium.com/@ankushaggarwal/gcm-setup-for-android-push-notifications-656cfdd8adbd#.rr2lfivfh)会产生什么影响,它仍可在不同的推送服务器上使用?另外,当我发送通知时,我可以使用世界各地的任何服务器吗?
如何找到我的手机连接的推送服务器(Android)?
这里有很多令人困惑的事情,如果有人能为这个话题带来光明,我真的很感激: - )
答案 0 :(得分:0)
GCM / FCM在中国不起作用的原因仅仅是因为中国的防火墙阻止了所有各种Google服务的连接,包括FCM。
此外,大多数(如果不是全部)中国销售的手机都没有配备Google Play服务,这是FCM工作的要求。
正如您所提到的,即使您将德国电话带到中国,由于防火墙,它也不会收到通知,尽管有Google Play服务。
但是您可以使用其他推送通知网关,这些网关更可靠,不依赖于Google Play服务。其中一个是普希。
Pushy(https://pushy.me/)为Android应用程序提供了一个高度可靠的推送通知网关,它使用自己的后台MQTT连接独立于FCM工作。它还提供iOS支持,因此您可以通过单个API推送所有用户,以获得跨平台支持。
完全披露:我创立了Pushy。
答案 1 :(得分:0)
使用 Cordova,您可以使用由小米 Android SDK 完成的插件 cordova-plugin-xiaomi-push。我已经测试过,当应用程序运行时,它适用于所有手机。即使使用小米手机关闭该应用程序 :)
使用小米的优势在于他们的developer website是英文的,而且他们的服务器 API 很简单。
还有 Huawei 和 Oppo 的 2 个插件,即使应用程序关闭,它们也能很好地与各自品牌的手机配合使用。但是API方面比小米复杂。为了在应用程序关闭时向所有供应商提供通知,似乎有必要为每个制造商/商店构建一个版本,其中包含所需的插件(可以使用 bash 脚本)+ 构建一个推送服务器,将通知发送到右侧提供者。
答案 2 :(得分:-1)
Google FCM 通知不适用于中国国家/地区。您必须使用一些不同的推送通知提供程序,例如 Pushy。