iOS的通知即在方式上分为两种,一种是在开发应用中就固定时间或者固定条件下发送的通知即本地通知;另一种就是远程通知,由开发者向客户端提供的远程通知发送的方式。

本地通知 (Local Notification)

iOS本地通知是在程序中指定某个时间,或者在多少时间倒计时,或者在特定条件之后,出现在设备的状态栏消息中的功能。

iOS为我们提供了几种实现方法,其中最简单的是使用 UILocalNoticification,在iOS 10.0 之后苹果推出了更加强大的 UNUserNotification; 当然了还有一种方法是使用 Noticfication Extension 通知扩展实现自定义通知。

>> 下面是具体本地通知体现在代码中的实现:

> 1. 在AppDelegate.m中application方法中对通知方法执行注册

 

>> 1. 在Appdelegate.h中 -- 实现必要的通知注册
>> 
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {/* UILocalNotification -- 本地通知的使用 */  if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0) {UIUserNotificationSettings *settings = [UIUserNotificationSettingssettingsForTypes: UIUserNotificationTypeAlert   | UIUserNotificationTypeBadge |   UIUserNotificationTypeSound categories:nil];[application registerUserNotificationSettings:settings];}/* UNUserNotification -- 本地通知注册使用 */[self initNoticWithDic:launchOptions];return YES;
}#pragma mark - 通知的初始化和 `点击通知` 的逻辑调用 --- 在程序被杀死的情况下调用否则未被杀死调用下面的方法
- (void)initNoticWithDic:(NSDictionary *)launchOptions{
// Method--1if ([[launchOptions allKeys]containsObject:UIApplicationLaunchOptionsRemoteNotificationKey]) {// 判断发送远程通知点击进入}else if ([[launchOptions allKeys]containsObject:UIApplicationLaunchOptionsLocalNotificationKey]) {// 通过本地通知点击进入}else{// 正常进入程序}// Method--2--UNUserNotificationCenter另一种注册通知方法的使用if(@available(iOS 10.0,*)){UNUserNotificationCenter *noticCenter = [UNUserNotificationCenter currentNotificationCenter];[noticCenter requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {if (granted) {NSLog(@"notic-通知开启");} else {NSLog(@"notic-关闭通知");}}];[noticCenter getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {NSLog(@"notic-settings-%@", settings);}];}}

获取用户设置 -- 判断是否允许发送通知的回调,以便可进行相应的处理。

如果点击 允许 发送通知则 notificationSettings.type有值,否则点击 不允许 其值为0

 

/***  1. 查看注册成功的通知类型*  2. 拿到注册结果进行自定义操作(获取发送通知权限失败予以提示)*/在 AppDelegate 中直接实现即可实现自动回调
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings{// 如果点击允许发送通知则 `notificationSettings.type`有值,否则其值为0if (notificationSettings.types && UIUserNotificationTypeBadge) {NSLog(@"Badge Nofitication type is allowed");}if (notificationSettings.types && UIUserNotificationTypeAlert) {NSLog(@"Alert Notfication type is allowed");}if (notificationSettings.types && UIUserNotificationTypeSound) {NSLog(@"Sound Notfication type is allowed");}   
}

> 2. 在AppDelegate.m中 响应通知的点击进入回调操作

程序没有被杀死(处于前台或后台),点击通知后会调用此程序方法

 

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{// 必须要监听--应用程序在后台的时候进行的跳转if (application.applicationState == UIApplicationStateInactive) {NSLog(@"进行界面的跳转");// 如果在上面的通知方法中设置了一些,可以在这里打印额外信息的内容,就做到监听,也就可以根据额外信息,做出相应的判断NSLog(@"%@", notification.userInfo);//点击弹窗之后会出现的视图
//        UIView *redView = [[UIView alloc] init];
//        redView.frame = CGRectMake(0, 0, 00, 100);
//        redView.backgroundColor = [UIColor redColor];
//        [self.window.rootViewController.view addSubview:redView];}
}

> 3.1 封装UILocalNotification通知方法的创建

 

>> 2. 
+ (void)sendLocalNotificaiton
{
// 1.创建本地通知UILocalNotification *localNotic = [[UILocalNotification alloc] init];
// 2.设置通知触发的时间 -- 所有时间触发时间是从开始创建这个通知开始计算,并且只有此应用不在活跃状态时才会发出通知// 2.1 倒计时设置为通知时间localNotic.fireDate = [NSDate dateWithTimeIntervalSinceNow:3.0];// 2.2 设置固定时间NSDateComponents *dateComponents = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:[NSDate date]];dateComponents.hour = 20; //20hdateComponents.minute = 0; // 00minNSDate *fireDate = [calendar dateFromComponents:dateComponents];notification.fireDate = fireDate;// 3.设置通知的内容 -- 通知内容是在本次创建通知时不可变更的,在下次再创建通知后,会在执行创建一次通知。localNotic.alertBody = NSLocalizedString(@"localNotificationContent_title", nil);
// 4.设置滑块的文字(锁屏状态下:滑动来“解锁”)localNotic.alertAction = @"解锁";
// 5.决定alertAction是否生效localNotic.hasAction = YES;
// 6.设置点击通知的启动图片localNotic.alertLaunchImage = @"123Abc";
// 7.设置alertTitlelocalNotic.alertTitle = NSLocalizedString(@"localNotificationTitle_title", nil);
// 8.设置有通知时的音效 -- 音效文件可提前加入应用bundle中localNotic.soundName = @"buyao.wav";
// 9.设置应用程序图标右上角的表示通知数目的数字localNotic.applicationIconBadgeNumber = 1;
// 10.设置通知的useInfo -- 这里设置的userInfo信息主要可以在删除此通知通过获取key和value对应此通知localNotic.userInfo = @{@"localNoticKey" : @"localNoticValue"};   
// 11.将通知加入系统通知队列中[[UIApplication sharedApplication] scheduleLocalNotification: localNotic];    
}

> 3.2 UNUserNotification通知方法的创建 -- 还可创建图片通知

 

+ (void)packageUNUSerNotificationCreate:(NSString *)imgPathStr withBodyStr:(NSString *)bodyStr {NSURL *url = [NSURL fileURLWithPath:imgPathStr];UNNotificationAttachment *imageAttachment = [UNNotificationAttachment attachmentWithIdentifier:@"imageAttachment" URL:url options:nil error:nil];if(imageAttachment == nil){// 如果是空就发送一次本地不带图片通知return;}UNMutableNotificationContent *noticeContent = [[UNMutableNotificationContent alloc] init];noticeContent.attachments = @[imageAttachment];noticeContent.title = NSLocalizedString(@"AppNavTitle", @"应用标题名");//content.subtitle = @""; //副标题不再调用noticeContent.body = bodyStr;noticeContent.sound = [UNNotificationSound defaultSound];// 如果repeats为YES,那么triggerWithTimeInterval的值要大于60sNSInteger countDownInt = 3600;  // 1h-3600UNTimeIntervalNotificationTrigger *trigger1 = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:countDownInt repeats:NO]; // 时间设置为不重复的只是执行一次发送通知NSString *requestIdentifier = @"unfinishID";UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:requestIdentifier content:noticeContent trigger:trigger1];// 发送通知[[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {NSLog(@"notic-发送通知出错: %@", error);}];
}

> 4. iOS 移除指定通知 和 移除全部通知

在加入系统中,加入指定通知,可以根据通知的userInfo移除指定通知

 

    // 1. 移除全部通知
+ (void)removeAllNoticfication{[[UIApplication sharedApplication] removeAllNoticfications];
}// 2. 根据创建通知时设置的userInfo移除指定通知
+ (void)cancelLocalNotificationWithKey:(NSString *)key
{// 获取所有本地通知数组NSArray *localNotifications = [UIApplication sharedApplication].scheduledLocalNotifications;if (localNotifications) {     for (UILocalNotification *notification in localNotifications) {NSDictionary *userInfo = notification.userInfo;if (userInfo) {// 根据设置通知参数时指定的key来获取通知参数NSString *info = userInfo[key];// 如果找到需要取消的通知,则取消if ([info isEqualToString:key]) {if (notification) {[[UIApplication sharedApplication] cancelLocalNotification:notification];}break;}}}} //for code.
}

远程通知 (Remote Notification)

一般情况下如果一个程序退到后台就不能运行代码(Audio、VoIP等等可以在后台运行),或者程序退出后,那么它就和对应应用的后台服务器断开了链接,就收不到服务器发送的信息了,但是每台设备只要联网就会和苹果的 APNs服务器(Apple Push Notification service) 建立一个 长连接(persistent IP connection),这样只要通过苹果的APNs服务器,我们自己的服务器就可以间接的和设备保持连接了,示意图如下:

iOS-RemoteNotic-APNs.png

远程推送步骤如下:

1. 进行相应的工程配置,如下:

iOS-RemoteNotic-BgMode.png

iOS-RemoteNotic-PushNotic.png

2. 注册通知并作出相应的处理 --- 类似等同于上面的本地通知的注册

3. 获取deviceToken

如果用户同意,苹果会根据应用的 bundleID 和 手机UDID 生成 deviceToken,然后调用 -application: didRegisterForRemoteNotificationsWithDeviceToken : 方法返回 devicetoken

程序应该把 devicetoken 发给应用的服务器,服务器有义务将其存储 (如果允许多点登录,可能存多个 devicetoken)。deviceToken也是会变的: ”If the user restores backup data to a new device or computer, or reinstalls the operating system, the device token changes“,因此应每次都发给服务器(provider)

 


// 用户同意后,会调用此程序,获取系统的deviceToken,应把deviceToken传给服务器保存,此函数会在程序每次启动时调用(前提是用户允许通知)
//会自动执行下面的方法
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {NSLog(@"log--didRegisterForRemoteNotificaionWith:%@",deviceToken);
}

4. 响应远程推送通知

 

/*1.如果应用程序在后台,则通知到,点击查看,该方法自动执行2.如果应用程序在前台,则通知到,该方法自动执行3.如果应用程序被关闭,则通知到,点击查看,先执行didFinish方法,再执行该方法4.可以开启后台刷新数据的功能step1:点击target-->Capabilities-->Background Modes-->Remote Notification勾上step2:在给APNs服务器发送的要推送的信息中,添加一组字符串如:{"aps":{"content-available":"999","alert":"bbbbb.","badge":1}}其中content-availabel就是为了配合后台刷新而添加的内容,999可以随意定义*/- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {NSLog(@"log--didReceiveRemoteNotification");
//   xxx
//   xxx
//   xxx   completionHandler(UIBackgroundFetchResultNewData);
}

推送证书的下载和使用

服务端推送格式

 

{"aps" : {                  // 必须有"alert" : "string","body"  : "string","badge" : number,"sound" : "string"},"NotiId"   : 20190114,     // 自定义key值
}

推送的大小限制

远程通知负载的大小根据服务器使用的API不同而不同。当使用HTTP/2 provider API时,负载最大为4kB;当使用legacy binary interface时,负载最大为2kB。当负载大小超过规定的负载大小时,APNs会拒绝发送此通知。

从网上找的以微信发送消息为例的示意图:

iOS-RemoteNotic-WeChatEx.png

推送实现

在真正实现远程通知推送,一般有很多第三方的SDK可以实现我们需要的推送,如 极光推送、百度推送、友盟推送

这些第三方SDK还在是基本原理上面进行了扩展。对于用不用第三方SDK其实对我们客户端影响不大,推送第三方SDK主要是方便了服务端开发者。主要表现为服务端开发者不需要去开发维护自己的推送服务器与 APNs 对接,不必自己维护更新 deviceToken。当然了,第三方SDK也会提供一些额外的附属功能例如JPush提供了应用内消息推送,这在类似于聊天的场景里很方便的。



作者:罂粟之城
链接:https://www.jianshu.com/p/2992b2e8ed5a

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 道琼斯指数调整,美股投资者应注意什么?

    今年因受新冠肺炎疫情影响,科技股和新经济公司业绩大放异彩,这也让道琼斯工业指数、纳斯达克综合指数和标准普尔500指数这三大指数收获不同程度的涨幅。 虽说科技股展现出强劲的增长动能,但道指因科技股的比重不足严重拖累道指表现,使其远远逊色于纳斯达克100指数及标普500…...

    2024/4/26 14:30:26
  2. Linux中Vim用户组管理

    用户组管理 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。 用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上…...

    2024/4/27 1:14:27
  3. 【转载】OpenCV-Python系列之开运算与闭运算(二十一)

    图像的腐蚀与膨胀是本次教程的核心——开运算与闭运算的基础,如果结构元素为圆形, 则膨胀操作可填充图像中比结构元素小的孔洞以及图像边缘处小的凹陷部分。 而腐蚀可以消除图像中的毛刺及细小连接成分, 并将图像缩小, 从而使其补集扩大。 但是, 膨胀和腐蚀并非互为逆运算…...

    2024/4/26 14:18:14
  4. ElasticSearch基本原理及分布式环境搭建

    ElasticSearch基本原理及分布式环境搭建 1 ElasticSearch简介 Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来…...

    2024/5/1 0:25:10
  5. Shopee虾皮SRE工程师一面面经

    2020.08.31,大概面了一个小时左右,其中半小时在做算法(而且还没做出来,我真是太菜了),之后状态就不是很好,感觉面试官想考察的点总是get不到,表达也不是特别专业性。面试官感觉有些严肃,但是我回答不上来的地方也会和我说没事给一些提示给我,总的来说作为春招以来过了…...

    2024/4/26 18:12:55
  6. 工业4.0|工业物联平台有多重要?Hightopo深度解析

    随着时代的发展,科学技术日新月异,人们进入了信息化的时代。现今,在物联网的逐渐普及下,物联网技术应用于工业中,也显得尤为重要;在工业网络和移动计算持续影响着制造业和工业环境的大环境中,这些技术帮助全球制造商和组织将诸如"互联工厂"、"工业4.0&qu…...

    2024/4/27 15:00:49
  7. JAVA从入门到精通(四)IDEA的组成和快捷键与数组的含义和使用

    一、Idea项目组成部分 这个大家是需要去下载IDEA的,以后就用这个软件编写程序。大家可以去找一些破解的,正式版太贵了。 1.idea组成部分图解2.idea常用快捷键快捷键 说明Ctrl+Y 删除光标所在行Ctrl+D 复制光标所在行的内容,插入光标位置下面Ctrl+Alt+L 格式化代码Ctrl+/ 单行…...

    2024/4/30 19:55:27
  8. Codeforces Round #666(Div. 2)E. Monster Invaders(DP)

    E. Monster Invaders 题意: 游戏里有nnn个关卡,你初始在第一关,第iii关有tit_iti​个小怪,每关都有且仅有一个boss。 小怪的hp为1,boss的hp为2。 你有三种攻击方式: 手枪:花费aaa时间对敌单体造成1伤害。 激光枪:花费bbb时间对敌全体造成1伤害。 AWP:花费ccc时间对敌单…...

    2024/4/11 17:04:13
  9. DDD领域驱动设计

    DDD领域驱动设计mrZhao概述软件开发不是一蹴而就的事情,我们不可能在不了解产品(行业领域)的前提下进行软件开发,在开发前,通常需要进行大量的业务知识梳理,而后到达软件设计的层面,最后才是开发。而在业务知识梳理的过程中,我们必然会形成某个领域知识,根据领域知识来…...

    2024/4/18 20:54:33
  10. 面试必问系列:悲观锁和乐观锁的那些事儿

    文章目录程序安全乐观锁和悲观锁悲观锁乐观锁CAS原理缺点适用场景版本号机制最后 程序安全 线程安全是程序开发中非常需要我们注意的一环,当程序存在并发的可能时,如果我们不做特殊的处理,很容易就出现数据不一致的情况。 通常情况下,我们可以用加锁的方式来保证线程安全,…...

    2024/4/11 17:04:12
  11. 30年技术积累,技术流RTC如何成为视频直播领域的黑马?

    2020年这场肆虐全球的新冠疫情让很多企业重新审视自己对数字化的认识,正如 “大潮褪去,才知道谁在裸泳”,疫情来势汹汹之时,企业数字化水平高下立分。有的企业之前一直自豪于斥重资打造高科技会议室,但在员工纷纷居家隔离时才发现,会议室再高科技炫酷,人到不了现场也枉然…...

    2024/4/11 17:04:10
  12. 安装VMware时提示该产品不支持降级

    在安装VMware是提示该产品不支持降级 出现这个问题的原因就是因为电脑之前安装了别的版本,在卸载的时候没有卸载干净 1、在卸载的时候,可以通过控制面板卸载VMware,然后找到C盘里面的隐藏文件夹ProgramData,将里面的VMware文件删除掉即可。 2、如果上述方法还是没有解决,可…...

    2024/4/14 0:13:52
  13. GestureDetector源码简析

    GestureDetector一、概述二、实例化对象三、事件回调OnGestureListeneronDown(按下)onShowPress(按下后100ms不动)onSingleTapUp(轻按抬起)onScroll(滑动)onLongPress(长按)onFling(抛)OnDoubleTapListeneronSingleTapConfirmed(单击)onDoubleTap(双击事件第二次…...

    2024/4/27 2:30:27
  14. Linux性能调优从优化思路说起

    平台下有无数的开源软件支撑,我们常见的apache、tomcat、mysql、php等等,开源软件的最大理念是自由、开放,那么linux作为一个开源平台,最终要实现的是通过这些开源软件的支持,以最低廉的成本,达到应用最优的性能。因此,谈到性能问题,主要实现的是linux操作系统和应用程…...

    2024/4/15 5:51:01
  15. cadence allegro 元器件定位

    在pcb设计中一些元器件的定位是固定的,比如定位孔,主控芯片,外部接口等。在allegro中有专门的操作能够使元器件定位准确执行。 圆形器件定位如上图所示,圆形的定位孔需要严丝合缝地与dxf文件中的示意重合,不然会对今后的装配制造麻烦。首先点击圆形定位孔,再点击工具栏里…...

    2024/5/3 17:48:55
  16. 技术原理(6) AOA 定位原理

    1说明 使用的是AOA技术,技术原理源于军事领域的PESA(无源相控阵雷达)技术 ,AOA 到达角定位技术,与标签的信号强度无关(rssi)。就是基站和标签之间产生的角度...

    2024/5/3 17:50:56
  17. 【分布式训练-PS】

    转载 https://blog.csdn.net/liangwqi/article/details/102726010 重点参考 https://blog.csdn.net/cyh_24/article/details/50545780 https://blog.csdn.net/oppo62258801/article/details/795370351. Parameter Server介绍 参数服务器是一个编程框架,用于方便分布式并行程序…...

    2024/4/15 16:24:11
  18. 白电双雄记:格力减速 营收仅为美的一半

    8月30日晚,老对手格力电器(000651.SZ)与美的集团(000333.SZ)再次撞日发布财报。只不过,此次中报可能是历史上最令格力股东“意难平”的一次PK。因为无论是营收规模还是净利水平,美的集团均占明显优势。时代周报记者计算,今年上半年,美的营收约为格力的2倍,净利润则为后者…...

    2024/4/11 17:04:03
  19. 浅谈Java异常处理机制及项目中的的规范处理方法

    CC 4.0 BY-SA 本文是转载!!!!版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/u011368943/article/details/78157109一、前言本文主要讲述异常处理的机制和原理,以及探讨开发Java程序时,每一层如何进行异常处理?…...

    2024/4/11 17:04:02
  20. SAP内部功能顾问需要重点掌握哪些BASIS技术内容

    从SAP顾问的工作内容来看,可以划分为功能顾问和BASIS顾问,所以,并不要求功能顾问一定要掌握BASIS内容。但如果是SAP应用(甲方)公司的内部功能顾问,不论是SAP服务器托管还是内部有IT管理,内部功能顾问都需要掌握一些与日常业务及应用密切相关的BASIS技术来更好的支持工作…...

    2024/4/23 23:38:15

最新文章

  1. RabbitMQ之顺序消费

    什么是顺序消费 例如:业务上产生者发送三条消息, 分别是对同一条数据的增加、修改、删除操作, 如果没有保证顺序消费,执行顺序可能变成删除、修改、增加,这就乱了。 如何保证顺序性 一般我们讨论如何保证消息的顺序性&…...

    2024/5/5 7:46:20
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 正交投影的矩阵(基变换与过渡矩阵的例子)

    在 n n n维欧几里得空间 V V V中&#xff0c;有子空间 W W W. 如果用自然基 ( e i ) 1 ≤ i ≤ n (\mathbf{e}_i)_{1\leq i \leq n} (ei​)1≤i≤n​&#xff0c;设 W s p a n ( w 1 , … , w d ) ( 0 < d < n ) W\mathrm{span}(w_1, \ldots, w_d)\; (0< d < n) W…...

    2024/5/4 6:26:17
  4. composer常见错误解决

    在Java中&#xff0c;常见的问题和解决方法包括&#xff1a; 内存不足错误&#xff1a;Java应用程序在运行时可能会遇到内存不足的错误。可以通过增加JVM的堆内存大小来解决&#xff0c;可以通过设置-Xms和-Xmx参数来指定初始堆大小和最大堆大小。 java -Xms2G -Xmx4G YourAppl…...

    2024/4/30 3:27:03
  5. Python读取文件里内容

    如果要读取一个文件里的内容是 # 文件名&#xff1a;db.txt 1 2 3 4代码如下 import requests f open("db.txt", mode"rb") content f.read() f.close()data content.decode(utf-8)# 存到 list 里 data_list data.split(\r\n) print(data_list)# 结果…...

    2024/5/3 15:30:08
  6. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/4 12:05:22
  7. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/4 11:23:32
  8. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/4 14:46:16
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/4 23:54:44
  10. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/4 12:10:13
  11. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/4 23:54:49
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/4 23:54:44
  13. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/4 14:46:12
  14. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/4 14:46:11
  15. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/4 14:46:11
  16. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/5 2:25:33
  17. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/4 21:24:42
  18. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/4 12:39:12
  19. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/4 13:16:06
  20. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/4 16:48:41
  21. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/4 14:46:05
  22. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/5 3:37:58
  23. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/4 23:54:30
  24. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/4 9:07:39
  25. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/4 14:46:02
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57