Aks*_*iya -1 php notifications laravel web-push onesignal
我第一次使用信号.我已经花了太多时间研发.但产量几乎为零.所以我在这里遵循我的要求.
我已成功开发了信号演示.但它与用户无关.如果我触发通知,则所有设备都会收到通知.所以这是我的问题.
如果有人能告诉我基本的例子,我们将不胜感激.我来自PHP方面.如果我从PHP开发人员的视图中得到答案,那将对我有好处.我已经在stackoverflow上问了这个问题.但答案来自Android视图.但我认为他不知道在服务器端,我们必须管理所有设备.所以我从那个答案中得不到更多.
Onesignal是向不同类型的设备发送推送通知的好平台.我在我的项目中使用相同的东西.我正在做的是,每当用户登录时,我将从客户端获取设备令牌,并使用他们的API在信号中创建用户.(我相信你知道如何使用谷歌项目编号和Android的谷歌API密钥,ios的p12文件等配置信号...)
Android透视:
因此,对于相同的Google API密钥,即使您再次删除并创建用户,onesignal也将始终返回相同的玩家ID.在一个大项目中,开发人员应该期望用户可能登录到不同的设备(android,ios等).因此,用户可以拥有多个令牌,玩家ID也是如此.还有一个要求是,如果用户没有登录,则用户不希望收到通知.
因此,记住您的所有需求,我可以建议您使用一个MySQL表结构来存储用户详细信息.
一个用于存储设备类型的表(可选)
-id
-device_type
Run Code Online (Sandbox Code Playgroud)一个用于存储令牌和玩家ID
-token_id
-user_id
-device_id
-device_token
-onesignal_player_id
-subscription
Run Code Online (Sandbox Code Playgroud)这些信号需要这两个表才能工作.
案例1:
每当用户尝试登录时,首先检查令牌表.查找是否有任何其他用户具有相同的给定令牌(这意味着另一个用户使用同一设备登录).删除此标记(如果有).然后在onesignal中创建一个新的播放器并将详细信息保存到令牌表中.将订阅标记为1,即订阅通知.每当用户注销时,将订阅标记为0,即取消订阅通知.
案例2:
每当用户登录时,检查令牌是否已存在于表中.如果是,并且令牌的所有者是相同的,那么只需将订阅标记为1.这样他就会收到进一步的通知.
案例3:
当用户使用其他设备登录(一次多个设备)时,gcm令牌肯定会有所不同.因此,将其另存为同一用户的另一个令牌并将订阅标记为1.因此,两个设备都将收到通知.
最后,在发送通知之前,获取订阅的特定用户的所有令牌,并一次性向所有用户发送通知.这将解决您的问题.
我知道这可能有点令人困惑.但不要担心,我们可以解决它.
| 归档时间: |
|
| 查看次数: |
3331 次 |
| 最近记录: |