iOS不使用第三方平台,发送推送消息

iOS不使用第三方平台,发送推送消息

先看看客户端:

需要关注两个点:一是代码部分的DeviceToken获取,且看代码

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

{

//消息推送支持的类型

UIRemoteNotificationType types =

(UIRemoteNotificationTypeBadge

|UIRemoteNotificationTypeSound

|UIRemoteNotificationTypeAlert);

//注册消息推送

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:types];

// Override point for customization after application launch.

return YES;

}



//获取DeviceToken成功

- (void)application:(UIApplication *)application

didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

{

NSString *pushToken = [[[[deviceToken description]

stringByReplacingOccurrencesOfString:@"<" withString:@""]

stringByReplacingOccurrencesOfString:@">" withString:@""]

stringByReplacingOccurrencesOfString:@" " withString:@""] ;

NSLog(@"DeviceToken:%@",pushToken);

//这里进行的操作,是将Device Token发送到服务端

}

注:这里用到一个小技巧,怎样把NSData数据内容里面的“<”,">"," "给去掉,得到一个有效的DeviceToken。



//注册消息推送失败

- (void)application:(UIApplication *)application

didFailToRegisterForRemoteNotificationsWithError:(NSError *)error

{

NSLog(@"Register Remote Notifications error:{%@}",[error localizedDescription]);

}



//处理收到的消息推送

- (void)application:(UIApplication *)application

didReceiveRemoteNotification:(NSDictionary *)userInfo

{

NSLog(@"Receive remote notification : %@",userInfo);

NSDictionary *aps = [userInfo valueForKey:@"aps"];

NSString *content = [aps valueForKey:@"alert"]; //推送显示的内容

UIAlertView *alert =

[[UIAlertView alloc] initWithTitle:@"温馨提示"

message:content

delegate:nil

cancelButtonTitle:@"确定"

otherButtonTitles:nil];

[alert show];

}

二是制作带有推送消息的证书

进入苹果开发网站:

选中带有推送服务:

创建成功之后,下载证书双击,在钥匙串就能看到:

右键导出p12文件,可以设置密码,也可以不设,一般不设置。以上证书就OK了。

下面来看看java写的服务器代码:

package com.sdunicom.iphone.apns;

import javapns.back.PushNotificationManager;
import javapns.back.SSLConnectionHelper;
import javapns.data.Device;
import javapns.data.PayLoad;

public class MainSend {
public static void main(String[] args) throws Exception {
try {
String deviceToken = "56378f94d620b0210a9228ea513a4ba2cbe61d0b29143116812da411009c0c9e";

PayLoad payLoad = new PayLoad();
payLoad.addAlert("盛科维的同胞们,大家好");
payLoad.addBadge(1);//消息推送标记数,小红圈中显示的数字。
payLoad.addSound("default");

PushNotificationManager pushManager = PushNotificationManager.getInstance();
pushManager.addDevice("iPhone", deviceToken);

//Connect to APNs
String host= "gateway.sandbox.push.apple.com";
int port = 2195;
String certificatePath= "/Users/wangjinhan/Desktop/最近技术研究/java后台推送程序/developcm.p12";
String certificatePassword= "";
pushManager.initializeConnection(host,port, certificatePath,certificatePassword, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);

//Send Push
Device client = pushManager.getDevice("iPhone");
pushManager.sendNotification(client, payLoad);
pushManager.stopConnection();

pushManager.removeDevice("iPhone");
}
catch (Exception e) {
e.printStackTrace();
}

}
}

/***********************

代码有几点要注意:

1.String deviceToken = "56378f94d620b0210a9228ea513a4ba2cbe61d0b29143116812da411009c0c9e";

要发送到对应的设备

2.payLoad.addBadge(1);

消息推送标记数,小红圈中显示的数字。服务器上作一个累计,当点击就计数为了,如果没有查看就一直累加。

3.String certificatePath= "/Users/wangjinhan/Desktop/最近技术研究/java后台推送程序/developcm.p12";

证书的路径,不能出错

4.String certificatePassword= "";

导出证书设置的密码,没有设置密码,就如上

这样就可以推送了。

***********************/

时间: 2024-08-02 06:57:38

iOS不使用第三方平台,发送推送消息的相关文章

IOS推送消息的步骤

实现消息推送的步骤 1.注册:为应用程序申请消息推送服务.此 时你的设备会向APNs服务器发送注册请求. 2.APNs服务器接收请求,并将deviceToken返 给你设备上的应用程序 3.客户端应用程序将deviceToken发送给后台 服务器程序,后台接收并储存. 4.后台服务器向APNs服务器发送推送消息 5.APNs服务器将消息发给deviceToken对应设 备上的应用程序

6. (在前面步骤的基础上展开)模板推送消息

一.模板推送的案列效果图 二.java代码实现 2.1  创建消息推送对象 package com.grand.weichat.entity; import lombok.Data; /** * 消息推送实体对象 * @author Administrator * */ @Data public class PushMessage { private String openid; //用户唯一编号 private String passport; //账号 private String id;

Android、iOS和Windows Phone中的推送技术

转自李宁的博客:http://blog.csdn.net/nokiaguy/article/details/11175359 推送并不是什么新技术,这种技术在互联网时代就已经很流行了.只是随着进入移动互联网时代,推送技术显得更加重要.因为在智能手机中,推送从某种程度上,可以取代使用多年的短信,而且与短信相比,还可以向用户展示更多的信息(如图像.表格.声音等). 推送技术的实现通常会使用服务端向客户端推送消息的方式.也就是说客户端通过用户名.Key等ID注册到服务端后,在服务端就可以将消息向所有活

使用【百度云推送】第三方SDK实现推送功能详解

之前介绍过如何使用shareSDK实现新浪微博分享功能,今天介绍如何使用百度云推送SDK实现Android手机后台推送功能. 运行效果如下 第一步,如果使用百度的SDK,当然要先成为百度的开发者啦,这个就不详述了.成为开发者之后,我们要建立一个应用,如下图所示 第二步,创建好应用之后,我们点击开方者服务管理,进入工程管理页面,然后点击左侧云推送,进入云推送功能页面,具体如下图 进入云推送详细页面之后,我们点击推送设置,设置好我们的应用的包名,然后点击快速实例,将系统给我们产生的示例代码下载下来

iOS开发,推送消息 steps

1.前期准备 在学习推送开发之前,开发者需要两样东西,(1).iPhone真机,因为模拟器不支持推送(2).付费的开发者账号. 2.新建项目,选择Single View Application模板. 3.注册通知(Registration Notification) (1)在AppDelegate文件的application:didFinishLaunchingWithOptions:方法中添加"注册推送"的代码. - (BOOL)application:(UIApplication 

iOS - 根据推送消息进行语音播报

目前市面上很多聚合支付APP都需要在收款成功后,进行语音提示,例如收钱吧,乐惠等!公司App融E收也同样需要实现改功能,主要分为2个部分,一是推送,而是语音播报,下面简单介绍一下 一 推送,目前集成的推送主要是极光推送,集成极光推动的流程比较简单,主要流程是 1.注册账号,在极光推送官网上注册账号,地址:https://www.jiguang.cn/accounts/register/form 2.登录账号,右上角点击创建应用,填写应用名称,上传应用icon,点击创建 3.上传推送证书,做APN

IOS 推送消息 php做推送服务端

IOS推送消息是许多IOS应用都具备的功能,最近也在研究这个功能,参考了很多资料终于搞定了,下面就把步骤拿出来分享下: iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器. 上图可以分为三个阶段: 第一阶段:应用程序把要发送的消息.目的iPhone的标识打包,发给APNS. 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有

微信公众平台向特定用户推送消息

最近研究微信公众平台,这里整理了一下向特定用户推送消息的思路 一.首先需要将微信的openid与系统用户绑定. 在用户关注公众平台的时候,回复一个链接,要求用户绑定,可以设计如下消息进行回复,(openid最好进行加密处理,后者还需要用这个字段绑定fakeid). 欢迎关注有问必答平台,<a href='http://myweixin123.duapp.com/[email protected]'>点击此处进行用户绑定</a>! 在bind.html页面将openid与系统的use

点击推送消息跳转处理(iOS)

当用户点击收到的推送消息时候,我希望打开APP,并且跳转到对应的界面,这就需要在AppDelegate里面对代理方法进行处理. 当用户点击推送消息打开APP的时候会调用 - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions launchOptions中会有推送消息的userInfo信息,此时我们可以通过 NSDictionary* rem