我在适用于 iOS 和 Android 的 adobe air 应用程序中遇到推送通知的奇怪问题。
我正在使用 Milkman Games 的 Easy Push ANE 以及 One Signal 服务。
问题是通知确实会到达,但有时(随机)消息在发送后最多需要 15 分钟才能到达设备。
这对我的应用程序(出租车预订应用程序)至关重要,因为我依赖推送通知在出租车应用程序和用户应用程序之间进行通信。因此,例如,如果用户请求出租车,出租车应用最多可能需要 15 分钟才能收到通知。
与 One Signal 支持人员交谈,根据他们的说法,他们这边一切正常,如果我查看 One Signal 仪表板,通知几乎总是立即发送。
延迟的原因可能是什么?我该怎么做才能让事情变得更好?
谢谢。
最佳答案
通常推送通知确实很快到达。但在一些罕见的情况下,我们会看到它们被延迟:
Android 设备上的通知延迟:
一些家用和商用 wifi 路由器会导致设备与 Google 的 GCM 服务器的连接关闭。设备稍后重新打开连接并接收延迟的通知。 (此处讨论:https://groups.google.com/forum/#!topic/android-gcm/Y33c9ib54jY)
某些自定义版本的 Android 操作系统具有省电设置,可能会导致通知延迟或被忽略。例如,索尼 Xperia 设备具有“耐力模式”。 (此处讨论:https://talk.sonymobile.com/t5/Xperia-Z3-Compact/Notifications-not-Working-When-Phone-in-Sleep-Mode/td-p/879641)
某些 Android 设备可能会在电池电量不足时进入低电量模式,这可能会导致通知接收略有延迟。
iOS 设备上的通知延迟:
向使用开发配置文件构建的设备发送通知时,Apple 的 APNS 服务器有时可能速度较慢或不可靠。您可以比较使用 AdHoc 配置文件和生产推送证书构建的应用程序版本,看看它是否运行得更好。在不久的将来,Apple 将改变这个系统的工作方式,这样这个问题就会消失。
与 Android 一样,某些 wifi 路由器会导致 iOS 通知传递延迟。
如果为应用选中“限制后台数据”、在高级设置中打开 Wifi 优化或启用优先模式,则通知可能会延迟。
WhatsApp 在其常见问题解答页面的底部有一个很好的说明,用于解决延迟的 Android 和 iOS 通知问题:https://www.whatsapp.com/faq/en/android/20887936
总体而言,上述问题很少见,几乎所有用户都会及时收到通知。但是,对于您的特定用例,您可能会发现短信是一种更可靠的工具。
关于android - 推送通知需要很长时间才能到达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32866191/
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rubysyntaxquestion:Rational(a,b)andRational.new!(a,b)我正在阅读ruby镐书,我对创建有理数的语法感到困惑。Rational(3,4)*Rational(1,2)产生=>3/8为什么Rational不需要new方法(我还注意到例如我可以在没有new方法的情况下创建字符串)?
有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
-if!request.path_info.include?'A'%{:id=>'A'}"Text"-else"Text"“文本”写了两次。我怎样才能只写一次并同时检查path_info是否包含“A”? 最佳答案 有两种方法可以做到这一点。使用部分,或使用content_forblock:如果“文本”较长,或者是一个重要的子树,您可以将其提取到一个部分。这会使您的代码变干一点。在给出的示例中,这似乎有点矫枉过正。在这种情况下更好的方法是使用content_forblock,如下所示:-if!request.path_info.inc
我需要用任何语言编写一个算法,根据3个因素对数组进行排序。我以度假村为例(如Hipmunk)。假设我想去度假。我想要最便宜的地方、最好的评论和最多的景点。但是,显然我找不到在所有3个中都排名第一的方法。Example(assumingthereare20importantattractions):ResortA:$150/night...98/100infavorablereviews...18of20attractionsResortB:$99/night...85/100infavorablereviews...12of20attractionsResortC:$120/night
修改(澄清问题)我已经花了几天时间试图弄清楚如何从Facebook游戏中抓取特定信息;但是,我遇到了一堵又一堵砖墙。据我所知,主要问题如下。我可以使用Chrome的检查元素工具手动查找我需要的html-它似乎位于iframe中。但是,当我尝试抓取该iframe时,它是空的(属性除外):如果我使用浏览器的“查看页面源代码”工具,这与我看到的输出相同。我不明白为什么我看不到iframe中的数据。答案不是它是由AJAX之后添加的。(我知道这既是因为“查看页面源代码”可以读取Ajax添加的数据,也是因为我有b/c我一直等到我可以看到数据页面之后才抓取它,但它仍然不存在)。发生这种情况是因为