当前位置:首页 » 编程语言 » phpios推送消息

phpios推送消息

发布时间: 2023-03-30 13:23:58

㈠ ios为什么php推送成功手机上收不到推送消息

如果你确认 appKey 在 SDK 客户端与 Portal 上设置是一致,其他环节也按照文档正确地操作。但还是收不到推送消息。那么,有一定的可能性,是你在 Portal 上上传的证书,不是 APNs (Push) 证书。 请参考iOS 证书设置指南再次检查证书选择是否正确...

㈡ ios推送消息 用php推送怎么实现

php实现ios推送的方法:首先把要发送的消息以及iPhone标识打包,并发送给APNS;然后查找有相应标识的iPhone,并把消息发送到iPhone;最后把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知即可。 可以分为三个阶段:
第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。
第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。
第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。
推送服务极光还不错,极光多种消息类型,开发者可以轻松地通过极光发送各个移动平台的系统通知,还可以在控制台编辑多种富文本展示模板; 极光还提供自定义消息的透传,客户端接到消息内容后根据自己的逻辑自由处理。

㈢ php 给iOS推送信息 提示推送成功手机却收不到消息

信息量太少,收不到消息的原因,我随口能说出来一百种可能,你有没有参与调试?
push消息连接是否畅通?别的数据是否可以正常还是专有数据无法接收?
是否网络不畅造成的?等等,需要技术人员去调试才能得到更进一步的解决方法
你这问题问成个表面原因了,这是该用户提出来的原因,而非出自技术人员之口。

㈣ ios开发怎么实现app的消息推送

ios开发实现app的消息推送步骤:
1、敬悔IOS应用需要去注册APNS消息推送功能。
2、当苹果APNS推送服收到来自你应用的注册消息就会返回一串device token给你(很重要)
3、将应用收到的device Token传给你本地的Push服务器。
4、当你需要为应用推送消息的时候,你本地的推送服册橡务器会将消息,以及Device Token打包发送到苹果的APNS服
5、APNS再将消息推送给目的iphone
JPush 是经过考验的大规模 APP 推送平台,每天推送消息数超过 5 亿条。开发者集成 SDK 后,可以通州稿旁过调用 API 推送消息。同时,JPush 提供可视化的 Web 端控制台发送通知,统计分析推送效果。JPush 全面支持 Android, iOS, Winphone 三大手机平台。同时支持的 iOS 版本为 6.0 及以上版本。支持 iOS 版本为 10.0 以上的版本。

㈤ ios开发如何实现消息推送机制

ios开发如何埋余好实现消息推送机制,具体的操作如下:
1、首先注册应用程序消息推送。
2、IOS跟服务器设备要设弯铅备口令。使用的应用程序接受设备口令。
3、然后经过应用程序将设备口令发送给苹果的服务端程序。
4、服务端程序向苹果服务发送消息。
5、苹果服务将消息发送给iPhone应用程序。
6、最后,这样就完成了ios开发消毁铅息推送机制。
想要使用消息推送系统,推荐使用深圳极光的消息推送系统。极光紧密围绕移动开发者需求,打造的开发者服务平台,可以提供一站式SaaS服务,通过全面覆盖PC、手机、传感器、无线路由器等多种设备数据,打造全域数据平台。当前,不断更新的SaaS产品及服务已深受国内百万开发者的认可和信赖。

㈥ php ios 推送 可以使用curl吗

<?php
02//
03ini_set('display_errors','on');
04error_reporting(E_ALL);
05
06
07//Apnsconfig
08
09//true-useapnsinproctionmode
10//false-useapnsindevmode
11define("PRODUCTION_MODE",false);
12
13$serverId=1;
14$serverName='my-server-domain.com';
15
16if(PRODUCTION_MODE){
17$apnsHost='gateway.sandbox.push.apple.com';
18}else{
19$apnsHost='gateway.push.apple.com';
20}
21
22$apnsPort=2195;
23if(PRODUCTION_MODE){
24//
25$apnsCert=$_SERVER['DOCUMENT_ROOT'].'/apns/apns-dominos-development.pem';
26}else{
27//Useaproctionpushcertificate
28$apnsCert=$_SERVER['DOCUMENT_ROOT'].'/apns/apns-dominos-proction.pem';
29}
30
31
32//---Sendingpushnotification---
33
34//Insertyourdevicetokenhere
35$device_token="<>";//SomeDeviceToken
36
37
38//Notificationcontent
39
40$payload=array();
41
42//Basicmessage
43$payload['aps']=array(
44'alert'=>'testing1,2,3..',
45'badge'=>1,
46'sound'=>'default',
47);
48$payload['server']=array(
49'serverId'=>$serverId,
50'name'=>$serverName
51);
52//
53$payload['data']=array(
54'foo'=>"bar"
55);
56$payload=json_encode($payload);
57
58$streamContext=stream_context_create();
59stream_context_set_option($streamContext,'ssl','local_cert',$apnsCert);
60stream_context_set_option($streamContext,'ssl','passphrase',"");
61
62
63$apns=stream_socket_client('ssl://'.$apnsHost.':'.$apnsPort,$error,$errorString,2,STREAM_CLIENT_CONNECT,$streamContext);
64
65
66$deviceToken=str_replace("","",substr($device_token,1,-1));
67echo$deviceToken;
68$apnsMessage=chr(0).chr(0).chr(32).pack('H*',str_replace('','',$deviceToken)).chr(0).chr(mb_strlen($payload)).$payload;
69fwrite($apns,$apnsMessage);
70
71
72//socket_close($apns);
73fclose($apns);
74
75?>

㈦ ios推送消息 用php推送怎么实现

iOS消息推送的工作机制可以简单的用下图来概括:
Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器。

上图可以分为三个阶段:

第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。

第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。

第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。

1、应用程序注册消息推送。

2、iOS从APNS Server获取device token,应用程序接收device token。

3、应用程序将device token发送给PUSH服务端程序。

4、服务端程序向APNS服务发送消息。

5、APNS服务将消息发送给iPhone应用程序。

无论是iPhone客户端和APNS,还是Provider和APNS,都需要通过证书进行连接。

下面我介绍一下几种用到的证书。

一、CSR文件

1、生成Certificate Signing Request(CSR)

2、填写你的邮箱和常用名称,并选择保存到硬盘。

点击继续:

这样就在本地生成了一个Push.certSigningRequest文件。

二、p12文件

1、导出密钥。

2、输入你的密码。

这样就生成了一个Push.p12文件。

三、SSL certificate文件

1、用你付过费的帐号登录到iOS Provisioning Portal,并新建一个App ID,这个过程可以参考:iOS应用的真机调试,这样就会生成下面这条记录:

卖庆2、点击右中指握侧的Configure:

3、点击Development Push SSL Certificate一行后的Configure:

4、点击Continue:

5、选择前面生成好的Push.certSigningRequest文件,点击Generate,出现如下所示的页面:

6、点击Continue:

7、点击Download,并将文件命名为aps_developer_identity.cer。

8、点击Done,你会发现状态变成了Enabled:

到现在为止,我们已经生成了三个文件:

1、Push.certSigningRequest

2、Push.p12

3、aps_developer_identity.cer

逗迟双击aps_developer_dientity.cer 注册到你的钥匙串中,这样你的钥匙串中就会有

二、准备profile证书,因为推送消息只能再真机上测试,所以要建一个profile证书

点击"new profile"为上面新建的APP ID建个profile ,成功之后下载*_Dev_Profile.mobileprovision

双击将其加入到xcode 的Provisioning Profiles 中,这里有一点要注意,再将这个加入xcode之前如果之前已经加入过一定要把之前加入的删掉,如果有多个的话会出错。

三、工程代码

到这里证书已经准备完毕,接下来,我们在xcode中新建一个测试工程,注意设置工程的Bundle Identifier必须与上面建的APP ID 里的相同

在didFinishLaunchingWithOptions 中加入一下代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

[self.window makeKeyAndVisible];

[[UIApplication sharedApplication] : UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert];

return YES;

}

- (void)application:(UIApplication *)application :(NSData *)pToken {
NSLog(@"regisger success:%@", pToken);

//注册成功,将deviceToken保存到应用服务器数据库
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{

// 处理推送消息

UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"通知" message:@"我的信息" delegate:selfcancelButtonTitle:@"取消" otherButtonTitles:nil, nil];

[alert show];

[alert release];

NSLog(@"%@", userInfo);

}
- (void)application:(UIApplication *)application :(NSError *)error {

NSLog(@"Regist fail%@",error);

}

到这里一切顺利的话我们就可以在真机运行了,注册成功我们会得到iphone 的deviceToken,

My token is:四、在应用服务器采用php的方式将消息推送给APNS,

1、php连接APNS也是需要证书的,还记得我们上面获得的几个证书吗?打开终端,对上面的证书做如下处理,

cd 进入证书所在目录

把.cer文件转换成.pem文件:

$ openssl x509 -in aps_developer_identity.cer -inform der

-out PushChatCert.pem

把私钥Push.p12文件转换成.pem文件:

$ openssl pkcs12 -nocerts -out PushChatKey.pem -in Push.p12

Enter Import Password:

MAC verified OK

Enter PEM pass phrase:

Verifying – Enter PEM pass phrase:

你首先需要为.p12文件输入passphrase密码短语,这样OpenSSL可以读它。然后你需要键入一个新的密码短语来加密PEM文件。还是使用”pushchat”来作为PEM的密码短语。你需要选择一些更安全的密码短语。

注意:如果你没有键入一个PEM passphrase,OpenSSL将不会返回一个错误信息,但是产生的.pem文件里面将不会含有私钥。

最后。把私钥和证书整合到一个.pem文件里:

$ cat PushChatCert.pem PushChatKey.pem > ck.pem

为了测试证书是否工作,执行下面的命令:

$ telnet gateway.sandbox.push.apple.com 2195

Trying 17.172.232.226…

Connected to gateway.sandbox.push-apple.com.akadns.net.

Escape character is ‘^]’.

它将尝试发送一个规则的,不加密的连接到APNS服务。如果你看到上面的反馈,那说明你的MAC能够到达APNS。按下Ctrl+C 关闭连接。如果得到一个错误信息,那么你需要确保你的防火墙允许2195端口。

然后再次连接,这次用我们的SSL证书和私钥来设置一个安全的连接:

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195

-cert PushChatCert.pem -key PushChatKey.pem

Enter pass phrase for PushChatKey.pem:

你会看到一个完整的输出,让你明白OpenSSL在后台做什么。如果连接是成功的,你可以键入一些字符。当你按下回车后,服务就会断开连接。如果在建立连接时有问题,OpenSSL将会给你一个错误消息,

ck.pem文件就是我们需要得到php连接APNS 的文件,将ck.pem和push.php放入同一目录上传到服务器,push.php的代码如下:

<?php
// 这里是我们上面得到的deviceToken,直接复制过来(记得去掉空格)

$deviceToken = '740f4707bebcf74f 9b7c25d4 61bb78ad';
// Put your private key's passphrase here:

$passphrase = 'abc123456';
// Put your alert message here:

$message = 'My first push test!';
////////////////////////////////////////////////////////////////////////////////

$ctx = stream_context_create();

stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');

stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
// Open a connection to the APNS server

//这个为正是的发布地址

//$fp = stream_socket_client(“ssl://gateway.push.apple.com:2195“, $err, $errstr, 60, //STREAM_CLIENT_CONNECT, $ctx);

//这个是沙盒测试地址,发布到appstore后记得修改哦

$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' . PHP_EOL;

// Create the payload body

$body['aps'] = array(

'alert' => $message,

'sound' => 'default'

);

// Encode the payload as JSON

$payload = json_encode($body);

// Build the binary notification

$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
// Send it to the server

$result = fwrite($fp, $msg, strlen($msg));

if (!$result)

echo 'Message not delivered' . PHP_EOL;

else

echo 'Message successfully delivered' . PHP_EOL;
// Close the connection to the server

fclose($fp);

?>
接下来我们访问http://localhost/push/push.php

iphone就会接收到一条推送消息了,如果有问题的话就检查上面的操作步骤,特别是加红的部分

另外去除标记的方法为,在viewDidApper中加入

int badge = [UIApplication sharedApplication].applicationIconBadgeNumber;

if(badge > 0)

{

badge--;

[UIApplication sharedApplication].applicationIconBadgeNumber = badge;

}

㈧ PHP极光推送如何自定义消息提醒声音。

->iosNotification($Content,Array('badge'=>'+1','sound'=>'sub.caf'))

这是ios的,安卓我之前测试貌似不行

㈨ 求大神讲解一下php怎么完成ios推送

这个就看你的个人技能水平和承压能力决定了。 通常在大公返枝司,摆在你则伏手底的活始终有一大堆,并且还有时间节点限制,就是规定多长时间内完成,如果能应付自如还好,应付不过来的话压力巨大,老得加班;而小公司任务量和漏盯敏时间较宽松灵活一些; 如果其他都没问题,再一个就是看公司和产品的前景以及个人在公司的发展空间决定了。当然是公司和产品前景越好就选哪个,或者说哪个对自身的发展越好就选哪个

㈩ 有什么快速方法由Windows PC向自己的IOS手机远程推送消息

当你的iPhone收到推送信息后到底会发生什么呢?总共有三种可能性:

app在前台运行. 接收到推送信息时屏幕上不会有任何显示,也不会有提示音,但你的appdelegate会收到这个推送信息。你可以在这里加入代码来处理接收到的信息。
app不在前台运行。iPhone可能停留在主界面或者另一个app正在运行.一个提示窗口会弹出,可能伴随着提示音。用户可以点击Close按钮来关闭这个窗口或者点击View按钮来打开你的app。如果用户点击的时Close按钮,那你的app不会处理这个推送的信息。
iPhone在锁屏状态下. 同样一个提示窗口弹出,并伴随着提示音,但是这个窗口不会有Close和View按钮段明。屏幕解锁后会自动进入你的app。
因为appdelegate是接收推送信息的地方,我们对app的最后改动都是在AppDelegate.m文件中。我们需要修改两处:

application:didFinishLaunchingWithOptions:函数.如果推送信息到达时你的app不在前台运行,而用户在弹出窗口点击了“View”按钮,你的app会重新运行然后这个信息会作为参数注入到application:didFinishLaunchingWithOptions:函数中。
application:didReceiveRemoteNotification:函昌燃茄数.如果信息到达时你的app正在耐察前台运行,那这个函数就会被调用。在iOS4.0或更新的版本,如果你的app从暂停状态进入前台,这个函数也会被调用。你可以用UIApplication的applicationState属性来检查你的app是否是从暂停状态苏醒。
上述的两个函数都会有一个字典参数其中包含了JSON格式的推送信息内容。OS已经帮我们把JSON格式的信息转换成Objective-C字典了。将下面的代码加到didFinishLaunchingWithOptions:函数的return语句前:if (launchOptions != nil)
{
NSDictionary* dictionary = [launchOptions objectForKey:];
if (dictionary != nil)
{
NSLog(@"Launched from push notification: %@", dictionary);
[self :dictionary updateUI:NO];
}
}

我们先确保launchOptions参数不是nil以及launchOptions中包含了推送信息。然后调用函数来处理这个信息。
把下面的函数加到AppDelegate.m文件中:- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{
NSLog(@"Received notification: %@", userInfo);
[self :userInfo updateUI:YES];
}

这个函数同样依靠来完成处理信息的工作。
将下面这个函数复制粘贴到didFinishLaunchingWithOptions:函数上面:- (void):(NSDictionary*)userInfo updateUI:(BOOL)updateUI
{
Message* message = [[Message alloc] init];
message.date = [NSDate date];

NSString* alertValue = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"];

NSMutableArray* parts = [NSMutableArray arrayWithArray:[alertValue componentsSeparatedByString:@": "]];
message.senderName = [parts objectAtIndex:0];
[parts removeObjectAtIndex:0];
message.text = [parts componentsJoinedByString:@": "];

int index = [dataModel addMessage:message];

if (updateUI)
[self.chatViewController didSaveMessage:message atIndex:index];

[message release];
}

我保证这是最后一点代码了。然我们解释一下这段代码。Message* message = [[Message alloc] init];
message.date = [NSDate date];

首先我们创建一个Message对象。我们会把推送信息的内容提取出来,填入到这个对象中然后将这个对象加入到DataModel中。NSString* alertValue = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"];

上面的代码从推送信息中获取了信息的内容。推送信息的JSON的格式看起来是这样的:{
"aps":
{
"alert": "SENDER_NAME: MESSAGE_TEXT",
"sound": "default"
},
}

服务器把信息内容以及信息作者的昵称放到了“alert”栏中。我们对这个字典中的其他内容并不感兴趣。NSMutableArray* parts = [NSMutableArray arrayWithArray:[alertValue componentsSeparatedByString:@": "]];
message.senderName = [parts objectAtIndex:0];
[parts removeObjectAtIndex:0];
message.text = [parts componentsJoinedByString:@": "];

上面的代码将发送者的昵称和信息内容分解出来放入到Message对象中。发送者昵称是分号和空格之前的字符串。int index = [dataModel addMessage:message];

现在我们可以把这个Message对象加入到DataModel中了。if (updateUI)
[self.chatViewController didSaveMessage:message atIndex:index];

最后,我们让ChatViewController加入这个新的信息。但是,如果推送信息是在didFinishLaunchingWithOptions函数中收到的,那我们就不能刷新这个视图,因为那时ChatViewController的表格还没有加载。视图加入这个信息会导致系统崩溃的。
就这些了。编译并运行现有的程序。用test_message.html中的表格来发送一些信息。你应该在app的聊天视图中看到这些信息气泡出现。自定义提示信息
你应该还记得我们之前在介绍推送信息时曾说过你可以自定义提示设置。比如你可以在有信息时播放一个自定义的提示音。我在app的resources文件夹中放了一个音频文件叫做beep.caf。
打开api.php文件并在makePayload()函数中将下面这行代码:$payload = '{"aps":{"alert":"' . $nameJson . ': ' . $textJson . '","sound":"default"}}';

改为:$payload = '{"aps":{"alert":"' . $nameJson . ': ' . $textJson . '","sound":"beep.caf"}}';

你不需要改变app本身的任何代码,甚至不用重新编译。但你还是应该在设备上关闭打开了的app。因为如果我们的app正在前台运行,那提示音是不会响的。现在用test_message.html给app发一个信息。当提示窗口出现时,提示音是不是不同了?
你也可以实验修改其他的选项。比如提供自定义按钮,或者给app设定数量小图标。(如果你想实验数量小图标,别忘了让app注册接收数量图标。现在我们的app只会有提示音和提示窗口。)
x

热点内容
怎么在windows下交叉编译qt 发布:2024-11-02 18:27:31 浏览:627
编程自动迷宫 发布:2024-11-02 18:09:48 浏览:432
联想数据守护者手机存储 发布:2024-11-02 18:09:43 浏览:201
游戏存储空间必须在同一个盘吗 发布:2024-11-02 18:09:43 浏览:677
云存储权益 发布:2024-11-02 18:08:59 浏览:55
做联机游戏服务器的电脑配置 发布:2024-11-02 17:44:36 浏览:172
华为编译器软件 发布:2024-11-02 17:42:11 浏览:123
电视机出场密码多少 发布:2024-11-02 17:36:23 浏览:577
服务器名称地址该如何填 发布:2024-11-02 17:31:14 浏览:84
群晖搭建视频培训服务器 发布:2024-11-02 17:23:14 浏览:624