问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

iOS 测试 本地推送最多能发多少条一天?

发布网友 发布时间:2022-04-20 22:47

我来回答

1个回答

热心网友 时间:2023-05-21 02:36

  APNS的推送机制

  与Android上我们自己实现的推送服务不一样,Apple对设备的控制非常严格,消息推送的流程必须要经过APNs:
  remote_notif_simple_2x

  这里 Provider 是指某个应用的Developer,当然如果开发者使用AVOS Cloud的服务,把发送消息的请求委托给我们,那么这里的Provider就是AVOS Cloud的推送服务程序了。上图可以分为三步:
  第一步:AVOS Cloud推送服务程序把要发送的消息、目的设备的唯一标识打包,发给APNs。
  第二步:APNs在自身的已注册Push服务的应用列表中,查找有相应标识的设备,并把消息发送到设备。
  第三步:iOS系统把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知

  为了实现消息推送,有两点非常重要:
  1,App的推送证书
  要能够完整实现一条消息推送,需要我们在App ID中打开Push Notifications,需要我们准备好Provisioning Profile和SSL证书,并且一定要注意Development和Distribution环境是需要分开的。最后,把SSL证书导入到AVOS Cloud平台,就可以尝试远程消息推送了。具体的操作流程可以参考我们的使用指南:iOS推送证书设置指南。
  2,设备标识DeviceToken
  知道了谁要推送,或者说要推送给哪个App之后,APNs还需要知道推到哪台设备上,这就是设备标识的作用。获取设备标识的流程如下:

  第一步:App打开推送开关,用户要确认TA希望获得该App的推送消息
  第二步:App获得一个DeviceToken
  第三步:App将DeviceToken保存起来,这里就是通过[AVInstallation saveInBackground]将DeviceToken保存到AVOS Cloud
  第四步:当某些特定事件发生,开发者委托AVOS Cloud来发送推送消息,这时候AVOS Cloud的推送服务器就会给APNs发送一则推送消息,APNs最后消息送到用户设备

  推送相关的几个概念

  消息类型

  一条消息推送过来,可以有如下几种表现形式:

  显示一个alert或者banner,展现具体内容

  在应用icon上提示一个新到消息数

  播放一段声音

  开发者可以在每次推送的时候设置,在推送达到用户设备时开发者也可以选择不同的提示方式。
  本地消息通知

  iOS上有两种消息通知,一种是本地消息(Local Notification),一种是远程消息(Push Notification,也叫Remote Notification),设计这两种通知的目的都是为了提醒用户,现在有些什么新鲜的事情发生了,吸引用户重新打开应用。
  本地消息什么时候有用呢?譬如你正在做一个To-do的工具类应用,对于用户加入的每一个事项,都会有一个完成的时间点,用户可以要求这个To-do应用在事项过期之前的某一个时间点提醒一下TA。为了达到这一目的,App就可以调度一个本地通知,在时间点到了之后发出一个Alert消息或者其他提示。
  我们在处理推送消息的时候,也可以综合运用这两种方式。

  代码里面如何实现推送

  首先,我们要获取DeviceToken。

  App需要每次启动的时候都去注册远程通知——通过调用UIApplication的registerForRemoteNotificationTypes:方法,传递给它你希望支持的消息类型参数即可,例如:

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
  // do some initiale working
  ...
  
  [application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound];
  return YES;
  }
  如果注册成功,APNs会返回给你设备的token,iOS系统会把它传递给app delegate代理——application:didRegisterForRemoteNotificationsWithDeviceToken:方法,你应该在这个方法里面把token保存到AVOS Cloud后台,例如:

  - (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  NSLog(@"Receive DeviceToken: %@", deviceToken);
  AVInstallation *currentInstallation = [AVInstallation currentInstallation];
  [currentInstallation setDeviceTokenFromData:deviceToken];
  [currentInstallation saveInBackground];
  }
  如果注册失败,application:didFailToRegisterForRemoteNotificationsWithError:方法会被调用,通过NSError参数你可以看到具体的出错信息,例如:

  - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
  NSLog(@"注册失败,无法获取设备ID, 具体错误: %@", error);
  }
  请注意,注册流程需要在app每次启动时调用,这并不不会带来额外的负担,因为iOS操作系统在第一次获得了有效的device token之后,会本地缓存起来,以后app再调用registerForRemoteNotificationTypes:的时候会立刻返回,并不会再进行网络请求。另外,app层面不应该对device token进行缓存,因为device token也有可能变化——如果用户重装了操作系统,那么APNs再次给出的device token就会和之前的不一样,又或者是,用户restore了原来的backup到新的设备上,那么原来的device token也会失效。

  其次,我们要处理收到消息之后的回调

  我们可以设想一下消息通知的几种使用场景:
  1,在app没有被启动的时候,接收到了消息通知。这时候操作系统会按照默认的方式来展现一个alert消息,在app icon上标记一个数字,甚至播放一段声音。
  2,用户看到消息之后,点击了一下action按钮或者点击了应用图标
  如果action按钮被点击了,系统会通过调用application:didFinishLaunchingWithOptions:这个代理方法来启动应用,并且会把notification的payload数据传递进去。
  如果应用图标被点击了,系统也一样会调用application:didFinishLaunchingWithOptions:这个代理方法来启动应用,唯一不同的是这时候启动参数里面不会有任何notification的信息。
  示例代码如下:

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
  // do initializing works
  ...
  
  if (launchOptions) {
  // do something else
  ...
  
  [AVAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
  }
  
  [application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound];

  return YES;
  }
  3,如果远程消息发送过来的时候,app正在运行,这时候会发生什么呢?
  app代理的application:didReceiveRemoteNotification:方法会被调用,同时远程消息中的payload数据会作为参数传递进去。
  示例代码如下:

  - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
  if (application.applicationState == UIApplicationStateActive) {
  // 转换成一个本地通知,显示到通知栏,你也可以直接显示出一个alertView,只是那样稍显aggressive:)
  UILocalNotification *localNotification = [[UILocalNotification alloc] init];
  localNotification.userInfo = userInfo;
  localNotification.soundName = UILocalNotificationDefaultSoundName;
  localNotification.alertBody = [[userInfo objectForKey:@"aps"] objectForKey:@"alert"];
  localNotification.fireDate = [NSDate date];
  [[UIApplication sharedApplication] scheleLocalNotification:localNotification];
  } else {
  [AVAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
  }
  }
iOS 怎么做到每天进行本地推送,五天用户都没开启APP 就停止推送

你可以设置5个本地推送,而且每个本地推送可以推送设置时间。这样app就最多执行5次本地推送了。

ios本地推送和远程推送的区别

本地推送,是指app向手机系统注册一条通告,到达推送时间自动触发,例如闹钟设置等app的实现 远程推送,是指后台向苹果服务器发送推送信息,并由苹果服务器推送。例如现在新闻类app每天都会向你推送新闻

国内开发者做的 iOS App 里消息推送一般多久能收到?

全天推送次数是200 万次/天。技术支持 网站、邮件、电话咨询。高级版服务的推送速度是20万条/秒 (独享) + 100万条/秒(共享),独享极速推送通道,免排队。支持华为、小米、vivo、OPPO、魅族、华硕、FCM独享通道 展示配额。全天推送次数无限制且专业技术人 7x24小时在线提供 1 对 1 技术支持,专人...

ios开发有关远程推送的测试版和正式发布版的区别

我们的项目在测试期间一直很顺利,但是我必须要确保上线后能用,因为测试证书和正式发布的证书以及一些其他东西是不一样的。 测试开始,我用的是之前测试证书上的deviceTocken,然后更换了不同的p12文件和苹果服务器地址。但是结果悲剧了,pad收不到推送的信息。后来搜到相关的问题,大概就是测试证书的devic...

ios测试版能收到正式版推送吗

是的,iOS测试版可以收到正式版推送。关于iOS系统从测试版过渡到正式版的推送,苹果公司通常会通过一系列的更新和改进来对测试版中的问题和不足进行修复。一旦测试版中的大部分已知问题得到解决,并且系统趋于稳定,苹果公司就会开始向测试用户推送正式版的更新。这意味着,只要用户的设备在测试阶段未遇到...

如何测试ios的推送功

很简单,首先看公司用的是什么推送的服务器(我们公司用的是极光推送),看app端在什么情况下会触发推送消息这个动作,在测试推送前 看推送的服务器有没有推送你的消息,其次在看手机端通知栏有没有消息。

ios测试版能直接更新正式版吗

可以。iOS测试版无需重装系统,即可更新成正式版。不过,用户需要先依次进入“设置-通用-设备管理”,删除测试版的描述文件。然后,大家只要等到正式版推送,就可以直接在设置里更新了。需要注意的是,苹果不会向普通用户推送测试版系统,因为BUG可能会比较多。用户想要尝试测试版系统,一般都是安装了测试版...

ios测试版可以更新到正式版吗

ios系统更新后,会向用户推送新版本,用户可以根据自己的需求选择更新。有些用户可能正在使用ios测试版系统,想要将系统升级到正式版,那么ios测试版是否能够更新为正式版呢?答案是可以的。当ios测试版系统受到正式版推送时,用户可以直接进行更新。具体来说,用户可以通过以下步骤更新ios测试版到正式版:首先...

ios开发 push只能在adhoc环境测试吗

adhoc是什么东西来的? 一般都是配置应用的证书 将推送选项选中 想配置文件下载到本地就可以测试推送环境了啊 adhoc是不是那个添加测试人员 然后通过ipa文件测试那个来的 基本没用过

苹果手机更新了ios开发者版本后,以后还能继续更新正式版本嘛?

可以的,用户只需要安装一个开发者描述文件,之后就都能收到每个测试版本的系统推送,正式版的是正式推送不影响。无非就是多了一项beta测试版本的推送服务。iOS 系统更新方式有二种,一是通过无线来更新;二是通过连接电脑来更新;如果用无线不能成功更新的话,你还可以通过把设备与电脑连接,然后用 i...

推送了iOS 9 ios 最新推送 苹果推送iOS13 ios推送beta版本 ios13推送 ios推送消息 怎么苹果ios没有推送 ios隐式推送 ios关闭推送
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何理解“时间就是空间,空间就是时间”? 办公室副主任竞聘演讲稿范文 学校办公室主任竞聘演讲稿范文 最新办公室主任竞聘演讲稿 办公室主任竞聘演讲稿优秀范文 ...堆墨现象,墨线 接地和粘度都正常,请问应如何解决 ...都正常了开始喷印结果喷一条墨线好恐怖怎么解决呀各位老师 威力喷码机 求一份学生会演讲词 大学学生会个人优秀演讲稿 淘宝店铺装修里图片轮播一次最多可添加几张图片? 设置网页样式的css文件为什么要分成几个呢? 哪个国家的国旗上的星星最多 一张banner最多不能超过3种字体吗? banner主标题最多几个字? 滚动banner最多可上传几张图片 要经典的古文名句(100条) 诗经里的名句 20句 谢谢如题 谢谢了 解释诗经和楚辞里的名句!急!!! 《诗经》、《楚辞》这些中有没有形容人品德高尚或... 中国古代诗词中不乏励志佳句:“路漫漫其修远兮,吾... 励志古诗名句 谁能给一些励志的文言文名句啊?比如:天将降大任... 屈原有什么激励人们奋发图强的千古名句 古人经典名言名句 励志 国学励志名言名句 诗经楚辞美句 谁有偷星九月天漫画(图) 漫画偷星九月天在那个软件可以看 关于名侦探柯南漫画! 跑操放的最多的英语歌,是V沃V沃瓦吐。、、、歌名啊。 谁有最新最全的搜索引擎入口,就是所有的引擎入口... 历史上谁影响你最多?写一篇英语作文. 淘宝店铺图片轮播最多可以设置几张图片?如果把图... 高分悬赏关于NDS的一切 回答好的话再追很多最多追2... 建设银行的网上银行每次最多转帐只有300? 国旗星星最多的国家? 教导团是什么意思啊 伊朗用人民币取代美元是真的吗 美元的货币单位是什么?每100元人民币兑换多少 假如人民币代替美元成为主流货币,中国人生活将会... 人民币代替美元是真的? 有没有可能将来会以人民币为货币单位代替美元的地位? 美元兑换人民币代理商多久到帐户 人民币什么时候可以成为世界货币,取代美元? 怎么把手里的美元换成人民币 一百人民币等于多少美元 目前在银行存美元和存人民币哪种比较合算? 34474.28美元是多少人民币 若人民币代替美元成为主流货币,中国人生活将会有...