- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的职业是 PHP 开发人员。所以,我对移动应用程序、iOS、Android 等诸如此类的东西了解不多。所以,请试着理解我。
我有一个由相应开发团队使用 iOS 开发的应用程序。现在,我必须使用 Pushwoosh 为这个应用程序提供 Push-Notifications。
我已经理解推送通知和 Pushwoosh 的用法是什么意思了。此外,我还可以使用从 Pushwoosh 控制面板 获得的 app_id 和 auth_key 发送示例推送通知。当我从服务器运行相应的 PHP 文件时,我收到带有正确状态代码的“成功消息”。
我的问题是实际上如何从服务器端的角度将此推送通知服务实现到应用程序中?
现在让我们考虑更动态和更实际的事情。
实际上,MySQL 数据库中只有一张表包含通知。只要有任何新条目插入到该表中,我就必须检查它(通知)是否针对已登录用户。如果为登录用户生成任何新通知,我必须通过 'Pushwoosh' 将推送通知发送给相关用户到他/她各自的设备。
现在我的问题是,包含用于检查新通知并将其作为推送通知发送的代码的 PHP 文件应该从应用端调用还是有其他方法?
换句话说,我的疑问是是否应该仅在应用发出请求时才执行新通知检查?
我与移动应用程序开发团队讨论了同样的问题,他们告诉我我们不会向您发送任何类型的请求,您只需向我们发送推送通知即可。他们告诉我推送通知的含义只是应用程序从不向服务器发送任何请求,服务器本身应该在可用时向应用程序发送通知。
那么在这种情况下,包含代码的 PHP 文件应该如何执行,因为没有收到针对它的请求?
这里的另一个问题是,如果应用程序不向 PHP 文件发送任何请求,那么我应该如何知道哪个用户已登录并请求为他/她生成的新通知(如果有)?
假设,如果请求是针对 PHP 文件的,那么我是否需要在 PHP 代码中为该特定用户进行基于 token 的身份验证,或者它将在应用程序端完成,只有在成功验证用户后,他们才会发送请求到 PHP 文件?
还应该每隔两分钟检查一次新通知(轮询)。应该从哪里进行检查?我的意思是 PHP 文件会每两分钟收到一次来自应用程序的请求吗?
请帮我解决这些繁琐的问题。
谢谢。
以下是我的示例代码(出于安全目的更改了 Auth Token 和 App ID):
<?php
define('PW_AUTH', 'XXXXXXXXXXX');
define('PW_APPLICATION', 'XXXXXXXXXXX');
define('PW_DEBUG', true);
function pwCall($method, $data) {
$url = 'https://cp.pushwoosh.com/json/1.3/' . $method;
$request = json_encode(['request' => $data]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if (defined('PW_DEBUG') && PW_DEBUG) {
print "[PW] request: $request\n";
print "[PW] response: $response\n";
print "[PW] info: " . print_r($info, true);
}
}
pwCall('createMessage', array(
'application' => PW_APPLICATION,
'auth' => PW_AUTH,
'notifications' => array(
array(
'send_date' => 'now',
'content' => 'test',
'data' => array('custom' => 'json data'),
'link' => 'http://pushwoosh.com/'
)
)
)
);
?>
仅在上面的代码中,我将集成用于检查和发送新通知(如果可用)的代码。
最佳答案
让我们开始安装 iOS 应用程序。 iOS 团队应注意在安装到 Apple 推送通知服务器 (APNS) 后注册设备并获取推送 token 。
登录时,他们应将此推送 token 发送到 PHP 服务器,服务器应注意将其与用户数据一起存储。通常(但不是强制性的)在成功登录后,服务器应该生成一些唯一的 token 并将其发送回设备,之后将用于它们之间的通信。如果没有过期要求,此 token 足以知道用户已登录。
如果需要过期,则服务器应保存 token 生成时刻的时间戳并将其存储到数据库中。这还需要在用户与应用程序/服务器交互时更新时间戳。
可以将 cron 作业设置为每 2 分钟运行一次,这将调用 PHP 脚本。此 PHP 脚本遍历数据库中的表并检查新通知,如果找到新通知,应尝试发送推送通知。如果需要“已登录”检查,脚本应检查用户的 token ,成功后应将 /createMessage
API 请求与相应的设备推送 token 一起发送到 Pushwoosh。 JSON 请求中的参数应类似于以下内容:
"devices":["dec301908b9ba8df85e57a58e40f96f523f4c2068674f5fe2ba25cdc250a2a41"]
请注意,您最多可以在此处添加 1000 个推送 token 。
通过这种方式,您将向具体用户的设备发送推送通知。
请注意,1 位用户可以在多台设备上安装该应用程序。在这种情况下,发送推送通知时应存储和使用所有推送 token 。
我希望我没有遗漏任何东西。
关于php - 使用 PHP 和 Pushwoosh 开发的推送通知服务功能的适当系统流程应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30634232/
我最近在我的 ionic/cordova 项目中重建了我的 iOS 平台。在那个过程中,我以某种方式破坏了我的推送功能。在此之前,它运行良好。 现在,当我在 Xcode 中将应用程序启动到设备时:在
正如他们网站上提到的 3 个步骤 Step 1 - Add Push NotificationsSDK to your project (Done) Step 2 - In Info.plist ad
有没有办法向除某些用户以外的所有人发送通知? 谢谢 最佳答案 A("00000-00000") \ T("userId", IN, "[1,2,3]") 所有订阅了 app 00000-00000 且
我有一个问题,但在 PushWoosh API 或 Google 上找不到答案。 我已成功将我的应用程序集成到 PushWoosh。对于了解 PushWoosh 的人,您可以设置“环境”以在发送推送通
我们使用 Pushwhoosh 进行远程通知。它工作正常,但图标角标(Badge)数量没有增加。 代码如下: - (void) onPushReceived:(PushNotificationMana
我可能是世界上最简单的问题。开始: 我正在将pushwoosh用于我的ios应用程序的推送通知。基本上,您只需要将Push NotificationsSDK添加到您的项目中。这是SDK的链接:http
这个问题已经有答案了: Silent pushes not delivered to the app on iOS 11 (14 个回答) 已关闭 6 年前。 我有一个关于 iOS 11 的问题推送通
我一直在尝试使用 phonegap(适用于 Android)将 pushwoosh 实现到我基于 javascript 的应用程序中。 我已经完成了他们的教程和示例,而且我还能够将设备注册到 GCM
我正在使用 pushwoosh 将通知从服务器发送到设备。这没有任何问题。另外值得一提的是,我正在使用 phonegap/cordova。此问题仅针对android,ios没有此问题。 问题是当我在短
我正在使用 Pushwoosh 在 Phonegap 中发送通知,但是如果我在应用程序中,Android 和 iOS 都不会显示通知。 我该如何解决? 我浏览了几个链接,但没能搞清楚。 func
我有一个 IOS 应用程序,它有两个目标,每个目标都有自己的 .plist 文件...我认为 pushwoosh 会从我的目标设置的 .plist 中获取“Pushwoosh_APPID”,但实际上并
这是我的代码。当我的应用程序被终止并在推送通知上重新启动时,它应该正确重定向,但它实际上从未进入 pushNotification.notificationCallback = function(ev
我在我的 ionic 应用程序中使用基于 cordova 的 Pushwoosh 插件。它用于获取推送通知。当我单击推送通知时,它会在 home.html View 中打开应用程序,但我想要其他页面,
我在我的应用程序中使用 Pushwoosh 来接收推送通知。我正在使用最新版本的 Pushwoosh 库 3.1.14。 我有这样的屏幕结构。 Login Activity -> Main Activ
好的,我使用 phonegap 开发 IOS 应用已有一段时间了。我开始为一个新应用程序集成 Pushwoosh,这样我就可以发送推送通知并且它运行良好。 现在我需要知道 Pushwoosh 是否具有
我完成了文档中的所有步骤。添加到 AndroidManifest.xml 的所有权限,为我的应用程序 ID 启用了 GCM。控制台中没有错误或警告: 03-09 18:34:50.701 27716-
我正在使用 Pushwoosh用于从 Java Webservices 向 Android 和 iOS 应用程序发送通知。我发现它非常易于使用。 我已经成功实现了它。我正在使用 createMessa
我将 Pushwoosh 与我的 Cordova 应用程序一起使用,但我现在无法激活它。当我想为 iOS 启用 Pushwoosh 时,我必须提供“证书文件 (.cer)”和“推送证书 (.p12)”
在 Keychain Access -> Keys 中,我只看到 2 个由证书签名请求生成的 key 。这些 key 是单行,其下没有任何证书。 在 Pushwoosh IOS 集成指南中,它在 ke
我正在使用 Pushwoosh 在我的原生 Android 应用程序上实现推送通知。 我点击了这个链接:http://www.pushwoosh.com/programming-push-notifi
我是一名优秀的程序员,十分优秀!