‘壹’ ios为什么php推送成功手机上收不到推送消息
如果你确认 appKey 在 SDK 客户端与 Portal 上设置是一致,其他环节也按照文档正确地操作。但还是收不到推送消息。那么,有一定的可能性,是你在 Portal 上上传的证书,不是 APNs (Push) 证书。 请参考iOS 证书设置指南再次检查证书选择是否正确...
‘贰’ 苹果有一款php项目编写的软件,左边是文件目录,右边可以编写代码,是什么软件,有windows版本吗
这样描述的应该系讲某种IDE软件,例如zend studio,phpstrom,epp等
‘叁’ 做苹果app开发需要用什么软件
首先,要开发苹果app,必须要掌握苹果app开发工具,那就是Objective-c和c语言。在开发苹果app软件的时候,需要走以下流程。
1. 形成开发App软件的idea
2. 苹果App软件的主要功能设计
3. App的大概界面构思和设计(使用流程设计)
4. 大功能模块代码编写
5. 大概的界面模块编写
6. 把大概的界面和功能连接后,app的大致demo就出来了
7. demo自己试用和体验几遍后,根据情况修改
8. app的0.8左右版本完成后可以加入proction的图标和部分UI图片
9. 没有大错误后,0.9版本可以尝试寻找beta用户
10. 根据测试用户的反馈,重复 7 - 9的步骤
11. app完成后,加入app icon, iTunesArtwork等等UI元素。反复测试无错误后上传iTunes
如何发布苹果app,需要做哪些准备呢?
一:必须获得ISO开发证书
为了获取IOS开发证书,你首先需要利用电脑上的钥匙串访问程序(Keychain Access)生成证书签名请求(CSR)。创建的CSR将提示钥匙串访问同时产生公有和私有密钥对。私有密钥缺省保存在钥匙串的“登录”,你可以在钥匙串访问的目录下面的“密钥”。
接下来,你还得完成:提交CSR(Submitting a Certificate Signing Request for Approval) 、证明CSR(Approving Certificate Signing Requests)、证明CSR(Approving Certificate Signing Requests)、下载并安装开发证书(Downloading and Installing Development Certificates)四个步骤。
二:设置注册设备 这里的设备是指IPHONE或IPAD设备。因为开发后,需要在真机上运行 设备的UUID可以通过ITUES或XCODE的”组织”窗口得到.
三: APP ID App id是应用程序标识,每个 App ID由苹果生成的唯一标识的10个字符 “Bundle Seed ID” 前缀和 自定义的 “Bundle Identifier”后缀组成 。后缀推荐格式为域名的反写,即com.公司.产品。APP ID是逻辑概念,与硬件无关。
四: PROVISIONING 这个部分是重点。也分为开发证书和发布证书
首先是要创建开发provisioning profile然后安装provisioning证书。接着,创建开发provisioning profile并安装provisioning证书
苹果app开发公司又该如何在这激烈的竞争中站稳脚呢?
对于一个新创的APP开发公司,团队技术精湛也是尤其的重要,因此不少的开发公司都开始接外包案子这一业务,但这是快钱,不利于一个企业的长期发展,代工产业,拼到最后就是接案数量以及价格,对于公司的品牌没有多大的加分,更没有留下一个属于自己的产品。苹果app开发公司应该在APP数量以及APP品牌上面多下功夫,两条线的策略,一条是以尽可能多数量的APP开发来开创现金流,外包的业务只是适合一些小公司,所以另一条是开创自有品牌的苹果APP软件。如何吸引用户经常性的愿意转发分享也必须纳入考虑,功能与创意都是一时的,用户活跃度才是关键。
‘肆’ ios 推送是建立在 苹果推送服务器吗
方法/步骤
在developer.apple.com的member center设置AppId属性,
enable push.
在developer.apple.com的member center创建APN证书,
Development -> Apple Push Notification service SSL (Sandbox) 用于沙盒app
Proction -> Apple Push Notification service SSL 用于AppStore app
创建完毕后,可以第一步AppId的属性列表中查看到证书名称
基于第1步修改的AppID重新生成provision file,
在iOS Project中加载此provision file,
这样编译出的app才可以获取到device token(推送唯一标识符)
以下为针对服务端的推送设置步骤--------
在keychain中找到第1步创建的APN证书,
展开此证书,分别导出证书和密钥,
名称设为cer.p12和key.p12
打开控制台程序,
使用openssl 将cer.p12及key.p12转成cer.pem和key.pem
命令如下:
$ openssl pkcs12 -clcerts -nokeys -out cer.pem -in cer.p12
$ openssl pkcs12 -nocerts -out key.pem -in key.p12
测试生成的cer.pem及key.pem是否可用
$ openssl s_client -connect gateway.push.apple.com:2195 -cert cer.pem -key key.pem
注:gateway.push.apple.com:2195用于appStore app;
gateway.sandbox.push.apple.com:2195用于沙盒app;
以上命令执行后会打印一大罗信息,最后处于可输入状态,打几个字符回车后自动断开连接即为正常。
合并cer.pem及key.pem
$ cat cer.pem key.pem > ck.pem
上传ck.pem到推送服务器的推送程序的目录。
Tip:-----------------------
find / -name "*.php"
查询推送服务器php文件目录用。
scp ~/Desktop/ck.pem [email protected]:/var/www/html
用于上传本地文件到Linux服务器用。
9
服务器php代码加载ck.pem向苹果服务器推送消息:略
客户端oc代码获取token,接收推送消息:略
‘伍’ 如何透过 PHP 发送 Apple Notification Push
在 PHP 的实作上透过 stream_context_create() 函式建立 SSL 连线,再利用 pack() 函式实作上述的规格来传送 Bytes 资料 (Payload),以下是 PHP 最精简的发送讯息程式码,执行后可以顺利与 APNS 沟通与发送讯息。各位可以依据需求修改程式来发送 Enhanced 或 Simple 讯息,或者切换 Sandbox 或 Proction 环境。程式范例如下:
<?php
// Proction mode
$certificateFile = 'apns-dis.pem';
$pushServer = 'ssl://gateway.push.apple.com:2195';
$feedbackServer = 'ssl://feedback.push.apple.com:2196';
// Sandbox mode
$certificateFile = 'apns-dev.pem';
$pushServer = 'ssl://gateway.sandbox.push.apple.com:2195';
$feedbackServer = 'ssl://feedback.sandbox.push.apple.com:2196';
// push notification
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $certificateFile);
$fp = stream_socket_client(
$pushServer,
$error,
$errorStr,
100,
STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT,
$streamContext
);
// make payload
$payloadObject = array(
'aps' => array(
'alert' => 'Server Time:'.date('Y-m-d H:i:s'),
'sound' => 'default',
'badge' => 3
),
'custom_key' => 'custom_value'
);
$payload = json_encode($payloadObject);
$deviceToken = '';
$expire = time() + 3600;
$id = time();
if ($expire) {
// Enhanced mode
$binary= pack('CNNnH*n', 1, $id, $expire, 32, $deviceToken, strlen($payload)).$payload;
} else {
// Simple mode
$binary= pack('CnH*n', 0, 32, $deviceToken, strlen($payload)).$payload;
}
$result = fwrite($fp, $binary);
fclose($fp);
?>
‘陆’ apple push notification service badge 怎么获取
一.前期准备
1.从Keychain中选择Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority...
填写User email(apple开发者帐号)/Common name(key的名字),选择Save to Disk,保存到Desktop,一定要有个复选框出来的!完成后会在钥匙串种加入2个密钥
2.做完上一步,Keychain会增加一个key,在Keychain中找到Key栏,将1中生成的private key导出为.p12文件,比如Test_Push_Notifier_PrivateKey.p12
3.登录developer.apple.com的iOS portal,申请AppID,需要具体到com.XXX.XXX,即不允许最后一个字段为模糊匹配
随后对该AppID进行配置,选中Push Notification,上传前面生成的CSR文件,Portal会自动生成aps_development.cer,下载aps_development.cer
4.在Portal上生成新的Provision,将AppID选中为com.XXX.XXX,并下载新的test.mobileprovision文件,并导入到Xcode之中
5.现在我们有两个文件:Test_Push_Notifier_PrivateKey.p12/aps_development.cer。打开终端,使用openssl对两个文件进行加密:
加密aps_development.cer:
openssl x509 -in aps_development.cer -inform der -out cer_dev.pem
加密Test_Push_Notifier_PrivateKey.p12
openssl pkcs12 -nocerts -in Test_Push_Notifier_PrivateKey.p12 -out key.pem
PHP服务端则将两者合并:
cat cer_dev.pem key.pem > Push_Notifier.pem
java服务端要转化为p12格式,用以下命令转化:
openssl pkcs12 -export -in cer_dev.pem -inkey key.pem -out cred_dev.p12
6.测试ApplePushServer正常:
telnet gateway.sandbox.push.apple.com 2195
7.测试加密证书工作正常:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert cer_dev.pem -key key.pem
二.客户端开发
需要实现的代码和覆盖的方法
1.在AppDelegate.m中修改-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
函数体中添加:
[[UIApplication sharedApplication] :(UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound|UIRemoteNotificationTypeAlert)];
2.在AppDelegate.m中添加下列函数:
-(void)application:(UIApplication*)application :(NSData*)deviceToken
{
NSLog(@"我的设备ID: %@", deviceToken);
}
-(void)application:(UIApplication*)application :(NSError*)error
{
NSLog(@"注册失败,无法获取设备ID, 具体错误: %@", error);
}
3.连接设备,运行一次程序,获得deviceToken号码,应该是64个16进制的数,记下来。
4.启动方式和调用方法
程序开启 --> 前台运行-->notification --> didReceiveRemoteNotification
不更改Application的badge Number
程序开启 --> 后台运行 -->notification --> App出提示,并更改application的badge Number --> 点应用程序图标 --> applicationDidBecomeActive
程序开启 --> 后台运行 -->notification --> App出提示,并更改application的badge Number --> 点上面出现的提示,或者下拉菜单提示,或者点击alert框的确定--> didReceiveRemoteNotification --> applicationDidBecomeActive
程序关闭 -->notification --> App出提示,并更改application的badge Number --> 点上面出现的提示,或者下拉菜单提示,或者点击alert框的确定--> didFinishLaunchingWithOptions --> applicationDidBecomeActive
可以在didFinishLaunchingWithOptions中判断是否是apns来启动的
[cpp] view plain print?
NSDictionary* pushInfo = [launchOptions objectForKey:@""];
//获取推送详情
NSString *pushInfo = [[NSString stringWithFormat:@"%@",[pushInfo objectForKey:@"aps"]];
在程序中如果要根据apns信息来做修改,就需要注意这样的流程,每个启动方式所调用的方法是不同的。
三.服务器端开发
服务器端 java第三方开发
https://github.com/notnoop/java-apns
四.注意事项
1.proction和developer的token是不一样的,需要用ad hoc来beta测试下
2.要将token上传给服务器,服务器要用,此外苹果也不能保证token会保证不变,所以最好将保留过长的token删除再同步次服务器。
3.发布前要将push地址改掉
测试用:gateway.sandbox.push.apple.com 2195
发布用:gateway.push.apple.com 2195
4.不要迷信APNS,苹果不是快递公司保证每个用户签收。
5.接受2196的端口是苹果每次push后会记录下用户收到状况,如果用户已经没有安装这个应用了,则会在服务器保留信息,等服务端访问2196端口,会将这些设备TOKEN传送过来,这样服务端可以将这些设备给disable掉
‘柒’ php通过第三方推送消息给你APP要怎样写
0.477248911谁有小白资源网李风老师录制的安卓入门视频教程?2016年最新0.477248911((~ o ~)~zZ)
‘捌’ 苹果手机怎么打开php文件
苹果手机需要在设置里修改下权限然后再打开php文件的啊。
‘玖’ ios推送消息 用php推送怎么实现
php实现ios推送的方法:首先把要发送的消息以及iPhone标识打包,并发送给APNS;然后查找有相应标识的iPhone,并把消息发送到iPhone;最后把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知即可。 可以分为三个阶段:‘拾’ 极光推送 php 怎么向特定的手机
客户端会有一个deviceid的,你记录那个,到时候发送的时候用$client->device()->updateDevice这个方法,第一个参数是deviceid,第二个参数是你用户表的唯一标识符,然后就可以push了