iOS经典讲解之实现App消息推送功能(二)

uniapp消息推送超详细(从开通uniPush到测试成功) 前段时间开发app的时候要开始做消息推送功能了,刚开始选择的是个推,最后由于。。。。。,em还是用了uniapp自带的uniPush,其实uniapp的推送就是集成版的个推,下面讲解详细的步骤 这里是官方的文档地址:uniPush推送指南:https://ask.dcloud.net.cn/article/35622 首先第一步要开通推送服务 1、开通推送服务 开通指南:uniPush开通指南:https://ask.dcloud.net.cn/article/35716 打开这个链接uniapp开 阅读详情

作者:Loving_iOS

转载请标明出处:http://blog.youkuaiyun.com/loving_ios/article/details/49000189

上一篇博客iOS经典讲解之实现App消息推送功能(一)讲解了实现消息推送的的准备工作,接下来我们来讲解第二部分的内容,实现具体的推送及代码示例。

消息推送的第三方平台有很多,这里我们使用极光推送平台,注册极光推送平台的账号。

登陆后进入控制台,创建推送消息的应用。

填写应用的名称并上传iOS开发证书,iOS开发证书需要从我们准备的推送证书导出,下面是导出的具体步骤。

获取iOS开发证书的步骤:

1、打开之前准备的推送证书

2、在钥匙串访问中找到该证书,然后右键导出。

3、选择导出的格式,一定是.p12格式,然后存储。

4、给导出的证书添加密码,可以不添加。如果添加,请记住,在导入到推送平台时使用。

5、填写登陆密码(电脑账户登录密码),到此获得到.p12证书。


将获得到的证书导入,并写入导出证书时填写的密码,如果没有设置密码,可不写,然后创建应用。

创建完后会得到应用的信息,包括APPKey(很重要),一会儿用得到。

剩下的步骤可以参考极光推送平台提供的文档,根据以下步骤获得到开发指南文档:

①点击文档

②选择iOS

③选择iOS集成指南,得到开发指南,参考里面的步骤,完成相关配置操作(很关键)。


到目前为止,所有的工作都已准备完成,下面是代码示例:

//
//  AppDelegate.m
//  PushDemo
//

#import "AppDelegate.h"
#import "APService.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   
    
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {

        //可以添加自定义categories
        [APService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeSound |UIUserNotificationTypeAlert) categories:nil];
    } else {
        //categories 必须为nil
        
        [APService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert) categories:nil];
    }
    // Required
    [APService setupWithOption:launchOptions];
    return YES;
}
#pragma mark - 注册成功 获取设备deviceToken
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    
    NSLog(@"%@", deviceToken);
    // Required
    [APService registerDeviceToken:deviceToken];
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    
    // Required
    [APService handleRemoteNotification:userInfo];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    
    // IOS 7 Support Required
    [APService handleRemoteNotification:userInfo];
    completionHandler(UIBackgroundFetchResultNewData);
}

- (void)applicationWillResignActive:(UIApplication *)application {
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}

- (void)applicationWillTerminate:(UIApplication *)application {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

@end

在工程的配置方面还有需要注意的地方:

工程的Bundle Identifier一定要和在苹果开发者平台获取的AppID保持一致

其次把描述文件与工程绑定,如图所示,选择对应的描述文件(Provisioning Profile),如果找不到之前你获取的描述文件的名称,请找到你下载的描述文件双击,然后再到工程中,你的描述文件的名称就出现了,然后选中。


如果工程中找不到描述文件名称,请双击。

写好代码,配置好工程之后,就可以发送消息试验了。

在极光推送平台选择对应的应用,然后发送消息。

你的手机对应的应用,就收到推送的消息了,到此消息推送功能已经成功实现。

注意:必须真机测试,才能实现消息推送功能。

iOS和Android即时通讯开发时后台实时消息推送的原理和区别 开发者通过第三方推送服务提供商将信息直接下发给需要的设备,第三方推送服务提供商与设备建立一条长连接通道,并且将消息路由到APP中(图中的设备1与设备2),对于像设备3这种无网络连接或是没有成功建立长连接通道的设备,会在设备3连网且推送消息没有过期的情况下自动收到由第三方推送服务提供商推送过来的消息,保证消息不会丢失。在这里,你要寄送的快件儿就是你要发的“消息”,送达房间相当于最终“接收消息的App”,顺丰公司在北京的总站点相当于这里提到的“设备”,送达房间的房间号就相当于这个环节里面提到的“包名”。 阅读详情

相关推荐

ios手机端集成mqtt接受服务器推送消息源码

oc开发,服务器端启动mqtt服务端,手机端使用mqtt客户端,动态获取推送消息,参考demo

iOS客户端如何测试推送

    当我们在客户端实现推送跳转需求后,但是服务器还没有做好后台的配置,此时需要测试收到推送消息之后能否按照预期,执行我们的代码。但在这个情况下如何去做呢。这里可以提供给大家两个选择。     1. 封装好处理逻辑的接口,在程序启动或者某个时刻模拟数据,直接调用处理逻辑的接口,查看是否符合预期。该情况只适用于测试跳转逻辑,不能测试数据解析的正确性(例如字段名是否正确、字段的类型是否正确等)。  ...

TuGeLe的博客 5513

高通camera调试经验总结

修改AF对焦模式 adb shell setprop vendor.debug.camera.af.manual 2 //使能手动对焦 adb shell setprop vendor.debug.camera.af.manual 0 //使能自动对焦

weixin_43381364的博客 1万+

iOS开发推送消息体展示

iOS开发中的推送消息体展示 随着移动设备的普及,推送通知已经成为与用户沟通的重要方式。在iOS开发中,推送通知不仅可以用于告知用户新消息,还可以用于提醒、促销和活动通知等。本文将介绍如何在iOS中展示推送消息体,并附带代码示例。 推送通知概述 推送通知是一种服务器向客户端应用程序发送消息的机制。当服务器有新消息时,会向特...

weixin_40597542的博客 326

单细胞 | pySCENIC·转录因子分析(二)

接上一篇,pySCENIC分析完之后就可以进行可视化了,个人认为最重要的有三个图:rss点图,rank图,转录因子表达水平热图,3个图结合着看。3.可视化rank图,可以自己改一下plotRSS_oneSet参数让图更好看一点。4. regulon表达水平热图,转录因子表达水平同理,得到的图类似只是输入不一样。2.可视化点图:寻找cluster特异性转录因子。1.loom文件读入R,提取数据。

生信练习生 4285

硬核入门!Python爬虫实战:爬取豆瓣读书TOP250,书名+评分+简介,一键生成精美Excel书单(2026避坑版)

通过这个实战,你不仅获得了一份珍贵的豆瓣TOP250书单HTTP请求与响应的本质。HTML解析的核心技巧。反爬虫的基本应对策略。数据清洗与存储的完整流程。爬虫是通往数据世界的一把钥匙。现在,钥匙在你手中,去探索更多有趣的数据吧!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 545

IOS10 Notification远程推送通知(三)

前面几篇文章说了本地推送的相关内容,下面是关于远程推送的。由于推送要服务端进行推,客户端接收,但是有时候不好协调,希望自己本地可以推,方便我们客户端测试。现在推荐一个好用的工具Knuff和NWPusher,本篇文章是用Knuff为例,更多关于Knuff的简介看这篇文章1、在mac上下载一个Knuff,界面很简单如下 2、注意设备的token在开发环境下是会变的哦,在删除app之后,会不一样,所以需

夏天的风轻轻吹过~~ 1149

Qwen2.5-VL多模态微调超参数深度解析(上):训练流程与优化策略的量化机制分析

上篇文章通过系统化的对比实验,回答了多模态微调中的三个基础问题:“选什么方法”(LoRA/Full/Freeze/OFT对比)、“用什么配置”(60+组超参数组合)、“达到什么效果”(ROUGE-L/BLEU-4指标)。这些结果为后续工作奠定了实验基线,但也留下了更深层的疑问:为何相同方法在不同数据集上表现迥异?为何某些超参数的微小调整会引发性能剧变?如何在未见过的任务上快速找到最优配置?本文是对前文实验数据的二次挖掘与机理解析。我们将关注点从"做了什么实验"转移到"实验揭示了什么规律",实验视角从"结果对

羊城迷鹿的博客 1005

iOS经典讲解之实现App消息推送功能(一)

一、消息推送的基本概念 @在实现消息推送功能之前先来了解一下消息推送的基本概念: @介绍一下苹果的推送机制(APNS) Provider是给你手机应用发出推送消息的服务器,而APNS(Apple Push Notification Service)则是苹果消息推送服务器。你本地的服务器当需要给应用推送一条消息的时候,先要将消息发出到苹果推送服务器,然后再由苹果推送服务器将消息发到安装

刘新林的技术博客 4328

〔重庆理工大学〕计算机组成原理课设报告--16位单周期CPU设计

本课程设计的实验平台为Altera Quartus II 软件和Altera Cyclone V Starter 工具箱。(1)Cyclone V是Altera FPGAs家族的一类,它面向低功耗应用。Cyclone V GX 5CGXFC5C6F27C7N 芯片有不同的转换器,按钮,LED灯,七段显示器,HDMI接口,SD卡读卡器以及其他链接等。Cyclone V GX 5CGXFC5C6F27C7N是Starter工具箱的重要组件。(2)测试台包含在测设备(DUT)和用于仿真的模拟输入。

Pretty Boy Fox的博客 1066

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

|~~~热爱生活、努力学习的小伙汁~~~| 1371

uniapp APP消息推送方案

项目场景:该项目是uniapp + uniCloud 项目,APP端的消息推送使用html+与原生实现交互。

Jelly115的博客 1万+

YOLOv8 智能交通流量监测完整解决方案

YOLOv8智能交通流量监测系统基于先进的目标检测技术,提供实时车辆识别与统计分析功能。该系统通过虚拟检测线实现多方向车流量统计,支持多种车辆类型分类,并具备数据可视化、异常事件预警等核心功能。完整解决方案包含模型训练、实时检测、批量处理、结果分析等模块,并提供Flask API和Docker两种部署方案。系统采用YOLOv8算法实现高效检测,支持GPU加速,可通过量化、剪枝等技术进一步优化性能,为智能交通管理提供可靠的数据支持和技术保障。

u010117029的博客 118

uni-app 消息推送功能UniPush

这里用的是uni-app自带的UniPush1.0(个推服务),所以只针对UniPush1.0介绍实现步骤。当然现在已经出了UniPush2.0(HBuilderX 3.5.1及其以上版本支持),新项目的话还是推荐使用UniPush2.0。如果要使用UniPush2.0,请移步 UniPush 2.0 使用指南。

爱就码上行动,奔赴热爱,追光而行。愿你带着从容与热爱,拥抱每一天的惊喜与美好 7116

【车载以太网】Eth Stack Bringup

摘要:本文基于AUTOSAR架构,详细介绍了在TC3xx硬件平台上实现EthStack Bringup的全过程。作者通过配置MCAL和Davinci工具,完成了EthTrcv、Eth、EthIf、EthSM和TcpIp等模块的集成,并解决了16字节内存对齐和以太网速率不匹配等问题。最终实现了PC端与开发板的Ping通,并通过WireShark验证了数据包收发。文章总结了调试中的关键问题与解决方案,强调了实践的重要性,为后续EthStack的深入分析奠定了基础。

qq_36056498的博客 182

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IOS开发之实现App消息推送(最新)

好久没有写过博客啦,今天就由本菜鸟给大家做一个简单的IOSApp消息推送教程吧!一切从0开始,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多刚开始接触ios的人会很想了解一下。(ps:网上看了一下虽然有很多讲述推送的好教程,我也是看着一步步学会的,但是这些教程的时间都是去年或者更早时期的,对引导新手来说不是很合适) 第一部分 首先

沐沐的博客 1641

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

PUSH消息推送的实现原理

通过短信发送推送消息,并在客户端植入短信拦截模块(主要针对 Android 平台),可以实现对短信进行拦截并提取其中的内容转发给 App 应用处理,这个方案借助于运营商的短消息,能够保证最好的实时性和到达率,但此方案对于成本要求较高,开发者需要为每一条 SMS 支付费用。客户端和服务器定期地建立连接,通过消息队列等方式来查询是否有新的消息,需要控制连接和查询的频率,频率不能过慢或过快,过慢会导致部分消息更新不及时,过快会消耗更多的资源(流量、电量等),对用户体验有较大伤害。

liuqinhou的博客 2674

ios免费消息推送服务器吗,iOS消息推送实现

iOS消息推送实现客户端** 证书和权限的申请:***1 :App必须要推送权限,申请真机测试权限2 :对应的appID申请推送证书3 :使用推送证书到处P12证书给服务器使用客户端代码实现:1:建立我们的推送的项目(注意BundleIdentifier必须和我们推送应用的App id一致)2:在AppDelegate里didFinishLaunchingWithOptions函数里写- (BOO...

weixin_28908857的博客 821

浅谈iOS和Android后台实时消息推送的原理和区别

前言 iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同。实时消息推送在移动端互联网时代很平常,也很重要,它的存在让智能终端真正成为全时信息传播的工具。本文将从原理上谈谈两个平台上实时消息推送的区别。 简要对比 iOS 系统的推送(APNS,即 Apple Push Notification Service)依托一个或几个系统常驻进程...

杭城小刘 1763

ios消息推送--iOS 8.0 后

本文章只提供学习!! iOS的消息推送(推送通知)有两种,一种是本地推送通知,另一种是远程推送通知。所谓本地推送通知就是使用代码推送消息到用户设备中提醒用户一些信息,推送形式请查看手机设置。远程推送通知是通过服务器发送消息到用户设备中,iOS的远程推送通知要经过苹果的服务器来推送消息,过程比较麻烦。下面是个人学习笔记,提供新手学习(当然我也是个新手),不能用于商业用途。 ...

dianban8737的博客 214

uni 登录token方法_uni-app 消息推送

在app 中几乎都会用到推送,uni-app 提供了 uni push 服务,这是一个包括客户端和服务器的统一服务,整合了苹果APNs、华为、小米、OPPO、VIVO、魅族等多家厂商的推送和个推的独立推送,不管客户端还是服务器,一套代码多端推送。开发者可以在uniPush中只接入个推,不配置其他厂商服务,但这将导致Android上App离线后无法推送消息。因为现在的国产rom节电管理策略严格,不使...

weixin_39616090的博客 1252

java集成极光推送实现Android的消息推送

1、极光推送的思路就是,每一个app都有一个AppKey和Master Secret,这两个值是唯一的,也就是用来标识App的唯一信息,具体怎么获取,去看极光推送官网文档,这里就不在讲解。我们在极光开发者上创建好了一个测试App后,设置好这两个值,就可以获取到如下信息。 2、此时我们已经获取到了AppKey和Master Secret,下面就是使用java代码实现消息推送功能。我这里采用S...

毅呀毅呀哟 2852

ios浅析web端的消息推送原理

引言: 在互联网高速发展的时代里,web应用大有取代桌面应用的趋势,不必再去繁琐的安装各种软件,只需一款主流浏览器即可完成大部分常规操作,这些原因都在吸引着软件厂商和消费者。而随着各大厂商浏览器版本的迭代,前端技术的不断革新,消息推送用到的场景也越来越多了。收发邮件提醒,在线IM聊天,自动化办公提示等等,web系统里总是能见到消息推送的应用。消息推送用好了能增强用户体验,用不好则会起相反的效果。...

马甲包开发审核交流群:869685378 541
上一篇: iOS经典讲解之实现App消息推送功能(一)
下一篇: iOS经典讲解之实现上拉刷新和下拉刷新
刘新林
博客等级 码龄11年 72粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值