极光推送有两种形式: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 极光推送相关推荐

  1. 极光推送swift语言

    库文件 libz.tbd SystemConfiguration.framework CoreTelephony.framework CFNetwork.framework appDelgate // ...

  2. 极光推送Cordova插件适配Capacitor

    极光推送官方提供的Cordova插件目前无法适配Capacitor电容器平台进行开发,之前问了官方什么时候会考虑适配,官方的回答是暂不做开发安排,需要调研,这对于想使用Capacitor进行开发的同学 ...

  3. 看了极光推送技术原理的几点思考

    看了极光推送技术原理的几点思考 分类: android2012-11-26 20:50 16586人阅读 评论(18) 收藏 举报 目录(?)[+] 移动互联网应用现状 因为手机平台本身.电量.网络流 ...

  4. swift通知栏推送_如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用

    swift通知栏推送 by Neo Ighodaro 由新Ighodaro 如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用 (How to create an iOS crypt ...

  5. 用JPUSH极光推送实现服务端向安装了APP应用的手机推送消息(C#服务端接口)

    这次公司要我们做一个功能,就是当用户成功注册以后,他登录以后要收到消息,当然这个消息是安装了我们的手机APP应用的手机咯. 极光推送的网站的网址是:https://www.jpush.cn/ 极光推送 ...

  6. 极光推送后台php接口,极光推送Jpush(v2)接口 服务端PHP版本的REST API推送类

    在许多的手机App开发中推送是一个必须的应用.高大上的企业都会自己投入成本搭建自己的推送服务器,而小微企业则会选择一些服务商,使用他们的服务,减轻自己的运营和维护的成本.Jpush(极光推送)是目前比 ...

  7. **极光推送PHP服务器端推送移动设备消息(Jpush V2 api)

    jpush.php  这是推送方法  用到curl发送请求 <?php /*** 极光推送php 服务器端* @author yalong sun* @Email <syl_ad@163. ...

  8. Laravel 集成 JPush 极光推送指北

    2019独角兽企业重金招聘Python工程师标准>>> 我是一个 Laravel 小白,我是一个 Laravel 小白,我是一个 Laravel 小白(默念三遍再往下读,如果非小白就 ...

  9. 《小印记》源码分享--极光推送服务器篇

    为什么80%的码农都做不了架构师?>>>    笔者这几天刚完成<小印记>的推送功能,今天特分享一下在做的过程中实际解决的问题.如果读者学到了有用的东西,希望能前往App ...

  10. 极光推送配置(Android Studio),亲测有效

    进行到这里就可以接收到通知了,但是如果你还想根据接收的消息做点什么 step8: public class MyReceiver extends BroadcastReceiver {private ...

最新文章

  1. python3并发编程基础
  2. ISME|宏转录组揭示参与深海碳氮循环的微生物
  3. Juju-Gui 安装笔记
  4. 利用OpenCV的函数createTrackbar创建滑动条查看二值化的最优阈值的源码及讲解
  5. 从C语言的角度重构数据结构系列(三)- 顺序存储结构和链式存储结构之顺序表
  6. 整合axis2到web项目中
  7. CentOS安装Nagios网络监视工具
  8. prop attr 到底哪里不一样?
  9. Mybatis根据IdType生成不同类型的主键id
  10. [air for ios] 三小时开发一个iOS飞行射击游戏
  11. HTML5网页语音识别功能演示
  12. Redis数据类型及使用场景
  13. java 注解开发 解耦_Android java 解耦框架注解Dagger2
  14. hdwiki 学习笔记 01
  15. 我的世界有宠物系统服务器,我的世界:如果Minecraft加入战斗宠物系统,推荐5大最强生物!...
  16. 需求与商业模式分析-1-商业模式画布
  17. sqlite3 二进制读取
  18. ODM/OEM/OBM区分
  19. 为什么电脑会突然蓝屏
  20. 阿里云服务器安装宝塔流程

热门文章

  1. 大数据学习的思维原理和方法?
  2. HTML中文字携带拼音的方法
  3. vue3使用echarts
  4. 十进制小数转二进制用计算机操作,十进制转二进制
  5. linux能安装cad快速看图不,ubuntu下能过wine安装cad快速看图
  6. java实现Tomasulo算法_并行计算机组成与设计pdf
  7. 计算机双面打印设置,双面打印怎么设置?双面打印设置方法步骤
  8. 知识图谱学习--网易云唐宇迪老师课程记录
  9. 算法导论第三版 第30章习题答案
  10. 慕课软件工程(第二十章.ISO9000标准)