我正在推送一些文本到iPhone应用程序.一旦消息被接受和处理应用程序我还是看到消息在通知区域,如果我再次接受消息中的应用得到复制.
我怎么能避免这种情况?一旦接受推送,是否可以将其从通知区域中删除.
换句话说,一次
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
Run Code Online (Sandbox Code Playgroud)
执行,我想从通知区域删除通知.
我使用PHP发送推送消息到apns,我使用"增强通知格式"发送..但我不能得到返回"错误响应包中的代码"任何人都可以帮助我?这是我的代码
<?php
header("Content-Type: text/html; charset=UTF-8");
$deviceToken = "123";
$content = "testing";
if(isset($content))
{
$newContent=substr($content,0,30)."...";
$re_content=iconv("GB2312","UTF-8",$newContent);
$pass = 'Ladder';
$body = array("aps" => array("alert" => $re_content, "badge" => 1, "sound" => 'received5.caf'));
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'dev.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);
//$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
stream_set_blocking ($fp, 0);
if (!$fp)
{
print "Failed to connect $err $errstrn";
return;
}
else
{
print "Connection OK\n<br/>";
}
$payload = …Run Code Online (Sandbox Code Playgroud) 嗨,我对苹果ios完全陌生.我阅读并搜索了很多关于推送通知的文章,但我没有发现任何有关从io4到ios 6 for APNS的新更新的内容.任何人都可以向我提供有关APNS如何在ios4到ios 6上运行的正确信息吗?有任何实施变化吗?
此外,我知道苹果改变了PN在iOS 4和iOS 5中出现的方式,就像PN出现时ios 5可以在不解锁设备的情况下显示它.
我使用Ray Wenderlich APNS php脚本来推送APS消息.当我从服务器上的命令行调用它时,脚本工作正常.但是,当我从应用程序调用它时,它什么也没做.我正在使用苹果沙箱地址的开发应用程序.同样,当我从命令行调用相同的脚本时,它会立即发送消息,但是从应用程序调用php文件不会产生任何结果.
命令行是否允许php打开与APNS服务器的连接,php路由阻止连接?
使用命令行:C:\ php\php.exe -f"D:\ dir\site\php\commentPush.php"连接到APNS消息已成功发送
使用我的应用程序:NSString*strPush = [NSString stringWithFormat:@"http://www.mysite.com/php/commentPush.php"];
*注意 - 我使用相同的技术和字符串为我的所有服务器端PHP执行成功.
我想在推送通知中向Apple手机发送自定义JSON,而无需任何其他信息.
我会发送类似的东西:
{
message: "Message bla bla"
, type: 1
, data: "Tekst"
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我正在玩苹果Passbook服务.我在所有设备上都有一个非常奇怪的行为.如果我通过APNS向设备发送推送,让他们知道某个传递有更新,他们会进行更新,但他们不会在设备的锁屏上显示任何通知.
现在我正在记录我的PHP-Webservice和APNS之间的整个通信.我总是回答headre 200和所要求的答案.(第一个序列;第二个Pass.pkpass)和设备进行更新,因为我可以在存折应用程序中看到,但正如我已经说过,我没有在锁屏上得到任何通知.设备已按照本文所述正确设置:链接
我这样做我的APNS请求:
public function sendePushNotification($passTypeID, $debug = true)
{
// Zertifikat vorhanden ?
$certFullPath = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . "api/cert/ck.pem";
if (file_exists($certFullPath))
{
/**
* Payload vorbereiten
*/
$message = 'PASSDROP UPDATE';
$body = array();
$body['aps'] = array('alert' => $message);
/**
* Host bestimmen
*/
$apnsHost = "gateway.push.apple.com"; // Development Umgbung
/**
* Stream erstellen
*/
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', $certFullPath);
$fp = stream_socket_client('ssl://' . $apnsHost . ':2195', $err, $errstr, 2, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) …Run Code Online (Sandbox Code Playgroud) 我想开发一个警报应用程序并实现类似"贪睡"功能.
首先,用户使用datePicker设置时间.当用户忽略通知时,
它在5分钟后再次发出通知.
所以我使用了UILocalNotification并设置了repeatInterval = NSDayCalendarUnit
然后我可以每天收到通知,但我不知道如何实施"打盹"
仅当用户忽略第一个通知时.
alarm push-notification apple-push-notifications ios uilocalnotification
我有以下用于ios推送通知的php代码.这是我在fwrite()部分使用循环的2个设备的代码.当前代码工作正常.我的疑问是,我可以直接传递设备令牌数组而不使用for循环吗?
<?php
// Put your device token here (without spaces):
$deviceToken[0] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$deviceToken[1] = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy';
// Put your private key's passphrase here:
$passphrase = '123456';
// Put your alert message here:
$message = 'multiple device push notification...!';
////////////////////////////////////////////////////////////////////////////////
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'abc.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
// Open a connection to the APNS server
$fp = stream_socket_client(
'ssl://gateway.sandbox.push.apple.com:2195', $err,
$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
exit("Failed to connect: $err $errstr" . PHP_EOL);
echo 'Connected to APNS' …Run Code Online (Sandbox Code Playgroud) 我想在我的IOS应用程序中实现.我已经为推送通知创建了证书,pushkey.pem当我从我的mac实现它时,我已经在设备中收到推送通知但是当我尝试从我的服务器实现它时,我收到以下错误我不知道如何过来这个问题请建议我解决这个问题
错误
1)Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Connection refused)
2)Warning: fwrite(): supplied argument is not a valid stream resource
3)Warning: fclose(): supplied argument is not a valid stream resource
我知道有很多问题,但我已经尝试了所有的建议,没有运气,我在shell命令中运行我的push.php时出现以下错误.我正在关注本教程 ,一切正常,直到php.我重复了很多次证书和密钥,因为它让我使用openssh连接然后我想问题不在于它.今天我再次重新创建了所有证书,并且现在做了一个新项目我甚至没有收到你接受允许在这个应用程序中推送通知的第一个提示.我被困了我在截止日期并且面对这个问题一周,请帮助我,我的PHP与修改令牌和密码的教程完全相同的文件我添加了ck.pem的路径,如某些人所建议的那样SOanswers但还没有工作.所以我添加了CA文件entrust_2048_ca.cer,它没有帮助解决问题.所有这些都是使用开发证书而不是在服务器上,你的想法可能是什么问题?使用外部库会更好吗?提前谢谢你的帮助.
警告:stream_socket_client():无法在/ Users/dalyaseen/Documents/test3d/test3d/push中设置私钥文件`/Users/.../..../.../.../ck.pem'第19行的.php
警告:stream_socket_client():无法在第19行的/.../..../.../.../push.php中创建SSL句柄
警告:stream_socket_client():无法在第19行的/Users/.../..../.../.../push.php中启用加密
警告:stream_socket_client():无法连接到/Users/.../.... /.../.../中的ssl://gateway.sandbox.push.apple.com:2195(未知错误)第19行的push.php无法连接:0
这是php脚本
<?php
#$deviceToken='ac49c9c8 a7d7f340 1c5c9af8 b8afeada ee7cdb77 051f12e8 90c314e1 129af45e';
$deviceToken='ac49c9c8a7d7f3401c5c9af8b8afeadaee7cdb77051f12e890c314e11y8u89i9o0lp';
# Put your private key's passphrase here:
$passphrase = '1234';
# Put your alert message here:
$message = 'push msg!';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', '/Users/d/Documents/test/test/ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
stream_context_set_option($ctx, 'ssl', 'cafile', '/Users/d/Documents/test/test/entrust_2048_ca.cer');
#stream_context_set_option($ctx, 'ssl', 'allow_self_signed', 1);
#stream_context_set_option($ctx, 'ssl', 'verify_peer', 1);
//Open a connection to the APNS server
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err,$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
exit("Failed …Run Code Online (Sandbox Code Playgroud)