iOS推送 (百度推送)
近期在使用推送,所以与大家分享一下我所遇到的问题,与解决这个问题的方法。!
1.首先生成CertificateSigningRequest文件。
点击钥匙串訪问-->从证书颁发机构请求证书-->填写用户邮件地址-->经常使用名-->点击储存-->继续-->最后点击保存。
在桌面上就能够看见CertificateSigningRequest.certSigningRequest文件就是CSR文件,在我们生成CSR文件的同一时候,会在钥匙串訪问中生成一对秘钥,名称为刚才我们填写的经常使用名。
2.打开开发人员中心 首先创建Identifiers -->在创建Certificates -->在创建Provisoning Profiles
注意:1.创建Identifiers时。一定要勾选Push Notifications。
2.保证Identifiers中的ID,Certificates中的Name,Provisoning Profiles中的APP ID,应用程序中的Bundle identifier,保持一致。
3.点击钥匙串訪问-->我的证书-->找到刚刚生成的.p12文件-->点击导出到桌面。
4.打开中端 -->openssl pkcs12 -in push.p12 -out push.pem -nodes。将.p12文件变成.pem文件。
5.加入到SDK到⼯project中的过程例如以下:
将
libBPush.a 和
BPush.h 加入到⾃自⼰己的⼯project下,加入时须要注意勾选当前Target
6.创建并配置BPushConfig.plist文件。在project中创建一个新的Property
List文件。并命名为BPushConfig.plist,加入下面键值:
{
“PRODUCTION_MODE” = NO
“API_KEY” = “uZbmgZKhfumvGYGowcjSPFc1”
“DEBUG” = NO
}
PRODUCTION_MODE:
- 必选。应用公布模式。开发证书签名时,值设为”NO”;公布证书签名时,值设为”YES”。
请在调试和公布应用时。改动正确设置这个值,以免出现推送通知无法到达。
API_KEY:
- 必选。百度开发人员中心为每一个app自己主动分配的api key。在开发人员中心app基本信息中能够查看。
6.SDK须要下面
库: Foundation.framework
、 CoreTelephony.framework
、 libz.dylib
、 SystemConfiguration.framework
,请在⼯project中加入
7.在 AppDelegate
中的 application: didFinishLaunchingWithOptions:
中调⽤用 API,初始化Push:
由于iOS8中对于推送有更改,所以要推断设备的版本号
[BPush setupChannel:launchOptions];
[BPush setDelegate:self]; //參数对象必须实现onMethod: response:方法,
#if SUPPORT_IOS8
// 8.0以后使用这样的方法来注冊推送通知
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
UIUserNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:myTypes categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}else
#endif
{
UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];
}
8. 在application: didRegisterForRemoteNotificationsWithDeviceToken:中调用API,注冊device token:
[BPush registerDeviceToken:deviceToken]; // 必须 [BPush bindChannel]; // 必须。 能够在其他时机调用。仅仅有在该方法返回(通过onMethod:response:回调)绑定成功时。app才干接收到Push消息。一个app绑定成功至少一次就可以(假设access token变更请又一次绑定)。
9. 实现BPushDelegate协议,必须实现方法onMethod:response::
if ([BPushRequestMethod_Bind isEqualToString:method])
{
NSDictionary* res = [[NSDictionary alloc] initWithDictionary:data]; NSString *appid = [res valueForKey:BPushRequestAppIdKey];
NSString *userid = [res valueForKey:BPushRequestUserIdKey];
NSString *channelid = [res valueForKey:BPushRequestChannelIdKey];
int returnCode = [[res valueForKey:BPushRequestErrorCodeKey] intValue];
NSString *requestid = [res valueForKey:BPushRequestRequestIdKey];
}
10.在application: didReceiveRemoteNotification:中调用API。处理接收到的Push消息:
获取推送后返回的数据
[BPush handleNotification:userInfo]; // 可选
參考:http://developer.baidu.com/wiki/index.php?
title=docs/cplat/push/guideios
iOS推送 (百度推送)的更多相关文章
- iOS开发三步搞定百度推送
iOS开发三步搞定百度推送 百度推送很简单,准备工作:在百度云推送平台注册应用,上传证书. 步骤一: 百度云推送平台 http://push.baidu.com/sdk/push_client_s ...
- iOS百度推送的基本使用
一.iOS证书指导 在 iOS App 中加入消息推送功能时,必须要在 Apple 的开发者中心网站上申请推送证书,每一个 App 需要申请两个证书,一个在开发测试环境下使用,另一个用于上线到 App ...
- atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99
atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99 1.1. 云推送有推送次数或频率的限制吗? 1 1.2. 推送的消息长度 1 1.3. 离线消 ...
- C# 简单的百度推送代码
前段时间搞推送来着,安卓方面用到了百度的推送服务,由于只是简单的用到安卓推送的通知功能,所以没用百度推荐的C# SDK,通过借鉴网上的各种资料和百度的API,费了老大劲终于折腾出来一段能用的代码(早知 ...
- iOS开发之远程推送
说到远程推送,应该用的也挺多的,今天就基于SEA的云推送服务,做一个推送的小demo,来了解一下iOS中的远程推送是怎么一回事儿,首先你得有苹果的开发者账号,好咸蛋也差不多了,主要内容走起. 一.准备 ...
- IOS个人帐号推送证书创建
(IOS个人帐号推送证书制作所有步骤: 可以直接将产品推送证书和开发者推送证书一起制作到一个Identifier帐号下) 一. 首先需要创建一个id:有推送功能的(App ID Suffix)只有它才 ...
- IOS中程序如何进行推送消息(本地推送,远程推送)2(上)
未看过本地推送的,可以提前看一下本地推送. http://www.cnblogs.com/wolfhous/p/5135711.html =============================== ...
- IOS学习笔记—苹果推送机制APNs
转自:唐韧_Ryan http://blog.csdn.net/ryantang03/article/details/8482259 推送是解决轮询所造成的流量消耗和 电量消耗的一个比较好的解决方案, ...
- (转)在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送
在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送 From: http://saeapns.sinaapp.com/doc.html 1,在 ...
随机推荐
- bzoj2819: Nim(博弈+树剖)
2819: Nim 题目:传送门 题解: 很久之前学博弈的时候看过的一道水题,其实算不上博弈吧... 直接套上一个裸的树剖啊,把路径上的点值全都xor(xor满足结合率所以就不管那么多随便搞啦) do ...
- BZOJ 1537 cdq分治
思路: 我只是想写一下cdq-- 二维偏序 一维排序 一维cdq分治 (我忘了归并排序怎么写了,,,) 写了个sort- 复杂度是O(nlog^2n) //By SiriusRen #include ...
- 使用IDEA搭建一个 Spring + Spring MVC 的Web项目(零配置文件)
注解是Spring的一个构建的一个重要手段,减少写配置文件,下面解释一下一些要用到的注解: @Configuration 作用于类上面,声明当前类是一个配置类(相当于一个Spring的xml文件)@C ...
- vue1.0.js的初步学习
vue.js是一个mvvm框架 {{.....}} 常用模板渲染方式 v-model :将对应变量的值的变化反映到input的vaule中 vue.js 的一个组件 .vue文件包含<te ...
- 错误:android.util.SuperNotCalledException
android.util.SuperNotCalledException: Activity {…….YouTubePlayActivity} did not call through to supe ...
- vue项目中引用echarts的几种方式
准备工作: 首先我们初始化一个vue项目,执行vue init webpack echart,接着我们进入初始化的项目下.安装echarts, npm install echarts -S //或 ...
- day03深浅拷贝、文件操作和函数初识
一.赋值.浅拷贝与深拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法, ...
- 【转】【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
原文地址:http://www.cnblogs.com/baiboy/p/orc8.html 阅读目录 目录 数据库安装 参考文献 相关文章 Oracle 11G RAC数据库安装(八) 概述:写 ...
- A*寻路算法详解
以我个人的理解: A*寻路算法是一种启发式算法,算法的核心是三个变量f,g,h的计算.g表示 从起点 沿正在搜索的路径 到 当前点的距离,h表示从当前点到终点的距离,而f=g+h,所以f越小,则经过当 ...
- windows端口被占用解决办法
1.查找端口 netstat -ano | findstr 端口号 2.进程列表并查找相应的进程 tasklist |findstr 进程号 3.杀死进程 taskkill /f /t /im 进程名 ...