似乎因为您是一位Web开发人员,移动应用程序还不太熟悉。实际上,设置推送通知将需要一些官方步骤(在iOS和Android上有所不同),并且在设置完成后,推送通知将在Apple服务器(或Google服务器)和智能手机的操作系统(iOS或Android)之间进行,因此推送通知将无论如何都会到达手机(不需要知道/关心您的应用程序是否打开或关闭^^)。
在我们应用程序的编程代码中,当通知到达时,我们可以根据两种情况处理逻辑:
用户正在使用应用程序或
应用程序未运行(未运行意味着用户没有使用您的应用程序,而是在后台保持唤醒状态或者已完全退出——例如,在iPhone上按Home按钮两次,并向左滑动应用程序)。
实际上,如果您希望您的应用程序保持唤醒状态,您可以向“清单”文件(当然在iOS和Android上各不相同)添加一些设置。然而,我的经验告诉我,保持应用程序唤醒状态会导致用户抱怨并删除我们的应用程序(我的先前应用程序的用户曾经抱怨说
他的iPhone电池大量消耗是因为我的应用程序^^)。
如果您真的想让您的应用程序保持唤醒状态,您可以在设置中进行设置,然后在推送通知的数据中,您可以包括额外的参数,最后在接收推送通知的功能中,您可以对这些参数做任何事情!
简而言之,您可能只需要为您的应用程序正确配置推送通知,然后Apple/Google将完成其他工作,无论您的应用程序在后台运行还是完全关闭,它都将接收到通知。希望您根据我的说明找到一个好的解决方案。如果还有什么不清楚的地方,请随时在此处发布您所需的更多详细信息,谢谢!
这是我先前React-Native项目使用的库:(他们也有教程^^)
https://github.com/zo0r/react-native-push-notification
补充说明:(基于作者的需求):
- 目标是:用户将在应用程序中注册/登录,并订阅一些未来事件。
=>每当用户打开应用程序时,将向Apple/Google服务器发送数据以获取令牌,您将使用此令牌与用户的订阅数据一起发送到
您自己的推送服务器(您可以使用PHP或node.js服务器或其他)。
- 当事件更新时,应向将参加该事件的所有用户发送通知。因此,通知仅针对特定用户。
=> 像上面的回答一样,每次用户打开应用程序时都会发送数据(或更改设置,您可以在应用程序的逻辑中执行此操作,因为数据将保存在
您自己的推送服务器上,这意味着在该服务器上,您甚至可以看到用户列表,并且可以针对某些用户 - 这取决于将从智能手机发送给用户的数据,但是用户可能会拒绝输入太多信息,例如姓名、年龄或电子邮件,但这取决于您的服务需求^^)
- 点击它,应用程序将打开,并显示应用程序的某个页面(预先存在)。
=> 默认情况下,当点击通知时,应用程序肯定会被打开,而且您可以再次添加额外的参数到通知中(即您需要的着陆页面,然后在您的应用程序功能中,只需转到那里 - 但这可能需要额外的逻辑。此外,何时推送通知以及应该推送哪些数据等将由
您自己的服务器控制)
=> 我已经解释过了,但你说得对,实际上很复杂,因为您需要根据自己的需求创建
自己的服务器,并且需要更多步骤(复杂的原因是您需要向Apple和Google注册许多内容,然后将它们的证书添加到自己的服务器中等等)
希望你能实现它,我建议你先玩一下并真正了解推送通知的工作原理(对于您自己的服务器和应用程序两侧都是如此)- 祝你好运^^