swift 极光推送
极光推送有两种形式:1、通知消息(在手机的通知栏能看见的); 2、推送消息;开发时要注意:后台发的的推送消息还是通知消息以便处理接收消息
一、注册
let entity = JPUSHRegisterEntity();
entity.types = Int(JPAuthorizationOptions.alert.rawValue) | Int(JPAuthorizationOptions.badge.rawValue) | Int(JPAuthorizationOptions.sound.rawValue);
JPUSHService.register(forRemoteNotificationConfig: entity, delegate: self);
// 注 JPushIsProduction =1 生产环境 =0 测试环境
JPUSHService.setup(withOption: launchOptions, appKey: JPushAppKey, channel: JPushChannel, apsForProduction:
JPushIsProduction);
// 注册接收极光推送
NotificationCenter.default.addObserver(self,selector:#selector(self.networkDidReceive(_:)),name: .jpfNetworkDidReceiveMessage, object: nil);
二、处理代理
// 注册APNs成功并上报DeviceToken
func application(_application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
JPUSHService.registerDeviceToken(deviceToken);
}
// 接受推送通知(前台)
func jpushNotificationCenter(_center: UNUserNotificationCenter!, willPresent notification: UNNotification!, withCompletionHandler completionHandler: ((Int) -> Void)!) {
let userInfo = notification.request.content.userInfo;
if (notification.request.trigger is UNPushNotificationTrigger){
JPUSHService.handleRemoteNotification(userInfo);
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "userInfo"), object:nil);
}
completionHandler(Int(UNAuthorizationOptions.alert.rawValue | UNAuthorizationOptions.sound.rawValue | UNAuthorizationOptions.badge.rawValue));// 需要执行这个方法,选择是否提醒用户,有badge、sound、alert三种类型可以选择设置
}
// 接受推送通知(后台)
func jpushNotificationCenter(_center:UNUserNotificationCenter!,didReceiveresponse: UNNotificationResponse!, withCompletionHandler completionHandler: (() -> Void)!) {
let userInfo:Dictionary = response.notification.request.content.userInfo;
if response.notification.request.trigger is UNPushNotificationTrigger {
JPUSHService.handleRemoteNotification(userInfo);
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "userInfo"), object:nil);
}
completionHandler();
}
//接收推送消息
@objc func networkDidReceive(_ notification: Notification) {
let userInfo = notification.userInfo;
if userInfo!["content"] != nil && "\(userInfo!["content"]!)".components(separatedBy: "statu").count > 1{
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "refreshStatu"), object:nil);
}else{
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "userInfo"), object:nil);
}
DNJPushManager.shared.didReceiveMessage(userInfo as! Dictionary<String, Any>);
}
三、设置别名
// 注意一定要设置别名,方便一对一发送极光消息,通常会取用户ID作为唯一标识
JPUSHService.setAlias("userId", completion: { (iResCode, tags, alias) in
print("别名设置",iResCode);
}, seq: 1)
swift 极光推送相关推荐
- 极光推送swift语言
库文件 libz.tbd SystemConfiguration.framework CoreTelephony.framework CFNetwork.framework appDelgate // ...
- 极光推送Cordova插件适配Capacitor
极光推送官方提供的Cordova插件目前无法适配Capacitor电容器平台进行开发,之前问了官方什么时候会考虑适配,官方的回答是暂不做开发安排,需要调研,这对于想使用Capacitor进行开发的同学 ...
- 看了极光推送技术原理的几点思考
看了极光推送技术原理的几点思考 分类: android2012-11-26 20:50 16586人阅读 评论(18) 收藏 举报 目录(?)[+] 移动互联网应用现状 因为手机平台本身.电量.网络流 ...
- swift通知栏推送_如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用
swift通知栏推送 by Neo Ighodaro 由新Ighodaro 如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用 (How to create an iOS crypt ...
- 用JPUSH极光推送实现服务端向安装了APP应用的手机推送消息(C#服务端接口)
这次公司要我们做一个功能,就是当用户成功注册以后,他登录以后要收到消息,当然这个消息是安装了我们的手机APP应用的手机咯. 极光推送的网站的网址是:https://www.jpush.cn/ 极光推送 ...
- 极光推送后台php接口,极光推送Jpush(v2)接口 服务端PHP版本的REST API推送类
在许多的手机App开发中推送是一个必须的应用.高大上的企业都会自己投入成本搭建自己的推送服务器,而小微企业则会选择一些服务商,使用他们的服务,减轻自己的运营和维护的成本.Jpush(极光推送)是目前比 ...
- **极光推送PHP服务器端推送移动设备消息(Jpush V2 api)
jpush.php 这是推送方法 用到curl发送请求 <?php /*** 极光推送php 服务器端* @author yalong sun* @Email <syl_ad@163. ...
- Laravel 集成 JPush 极光推送指北
2019独角兽企业重金招聘Python工程师标准>>> 我是一个 Laravel 小白,我是一个 Laravel 小白,我是一个 Laravel 小白(默念三遍再往下读,如果非小白就 ...
- 《小印记》源码分享--极光推送服务器篇
为什么80%的码农都做不了架构师?>>> 笔者这几天刚完成<小印记>的推送功能,今天特分享一下在做的过程中实际解决的问题.如果读者学到了有用的东西,希望能前往App ...
- 极光推送配置(Android Studio),亲测有效
进行到这里就可以接收到通知了,但是如果你还想根据接收的消息做点什么 step8: public class MyReceiver extends BroadcastReceiver {private ...
最新文章
- python3并发编程基础
- ISME|宏转录组揭示参与深海碳氮循环的微生物
- Juju-Gui 安装笔记
- 利用OpenCV的函数createTrackbar创建滑动条查看二值化的最优阈值的源码及讲解
- 从C语言的角度重构数据结构系列(三)- 顺序存储结构和链式存储结构之顺序表
- 整合axis2到web项目中
- CentOS安装Nagios网络监视工具
- prop attr 到底哪里不一样?
- Mybatis根据IdType生成不同类型的主键id
- [air for ios] 三小时开发一个iOS飞行射击游戏
- HTML5网页语音识别功能演示
- Redis数据类型及使用场景
- java 注解开发 解耦_Android java 解耦框架注解Dagger2
- hdwiki 学习笔记 01
- 我的世界有宠物系统服务器,我的世界:如果Minecraft加入战斗宠物系统,推荐5大最强生物!...
- 需求与商业模式分析-1-商业模式画布
- sqlite3 二进制读取
- ODM/OEM/OBM区分
- 为什么电脑会突然蓝屏
- 阿里云服务器安装宝塔流程