请注意,此问题适用于 iOS 6,这是我提出问题时 iOS 的最高生产版本。我没有对更高版本的 iOS 进行后续测试,情况很可能已经发生变化。如果您在更高版本的操作系统上观察到相同的行为,请发表评论!
我的应用注册了推送通知。出现权限对话框(“MyApp 希望向您发送推送通知”)。有两种可能的流程:
a) 用户选择确定。 Settings->Notifications->MyApp 然后显示警报的完整权限,如我所料。
或
b) 这是错误 用户选择取消。我希望设置-> 通知-> MyApp 显示该应用程序不在通知中心,并关闭所有权限。然而,事实恰恰相反 - 与他们确定对话框的情况没有区别!
除了我的应用程序之外,我还发现 BBC News 和 Ap Mobile 存在相同的错误,而 Viber 则没有(工作完全符合我的预期)。 Ap Mobile 有这个错误的变体 - 如果我拒绝推送通知,只有角标(Badge)打开,而不是声音和警报。
根据 TN2265,我正在通过恢复到运行应用程序之前所做的备份来重置推送设置的状态。 .
最佳答案
经过无数次恢复和测试,我发现了以下内容。
如果用户在“xxx would like to send you push notifications”中选择Cancel,那么在Settings->Notifications->App Name中将关闭提醒,除非
a) 在 registerForRemoteNotificationTypes: 之前调用了 cancelAllLocalNotifications,在这种情况下,所有警报都将打开。这感觉就像一个 Apple 错误。
或 b) 在 registerForRemoteNotificationTypes: 之前调用了 setApplicationIconBadgeNumber:0(没有尝试其他数字),在这种情况下,只有角标(Badge)会打开。可以说,如果我们实际设置角标(Badge)编号,启用角标(Badge)是合理的,所以这不是一个错误而不是(未记录的)功能并不完全明显。
此错误/功能的解决方法是在触摸之前检查推送是否已启用。
// If remote notifications are already enabled, then clear any existing.
if([[UIApplication sharedApplication] enabledRemoteNotificationTypes] != UIRemoteNotificationTypeNone)
{
[[UIApplication sharedApplication] cancelAllLocalNotifications];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
}
关于ios - 在推送通知权限对话框中选择取消后,设置显示通知警报已开启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18678506/
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的
有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
如果我在模型中设置验证消息validates:name,:presence=>{:message=>'Thenamecantbeblank.'}我如何让该消息显示在闪光警报中,这是我迄今为止尝试过的方法defcreate@message=Message.new(params[:message])if@message.valid?ContactMailer.send_mail(@message).deliverredirect_to(root_path,:notice=>"Thanksforyourmessage,Iwillbeintouchsoon")elseflash[:error]
print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上
我有一个数组数组,想将元素附加到子数组。+=做我想做的,但我想了解为什么push不做。我期望的行为(并与+=一起工作):b=Array.new(3,[])b[0]+=["apple"]b[1]+=["orange"]b[2]+=["frog"]b=>[["苹果"],["橙子"],["Frog"]]通过推送,我将推送的元素附加到每个子数组(为什么?):a=Array.new(3,[])a[0].push("apple")a[1].push("orange")a[2].push("frog")a=>[[“苹果”、“橙子”、“Frog”]、[“苹果”、“橙子”、“Frog”]、[“苹果”、“
我有一个ids和他们的分数的散列,它是这样的:@objects={1=>57,4=>12,3=>9,5=>3,55=>47,32=>39,17=>27,29=>97,39=>58}我怎样才能选出前五名并放弃其余的?我这样做:@orderedObject=@objects.sort_by{|k,v|v}.reverse=>[[29,97],[39,58],[1,57],[55,47],[32,39],[17,27],[4,12],[3,9],[5,3]]然后我这样做:只有@orderedObjects的键:@keys=@orderedObject.map{|key,value|key}这
我正在尝试在ruby脚本中连接到服务器https://www.xpiron.com/schedule。但是,当我尝试连接时:require'open-uri'doc=open('https://www.xpiron.com/schedule')我收到以下错误消息:OpenSSL::SSL::SSLError:SSL_connectreturned=1errno=0state=SSLv2/v3readserverhelloA:sslv3alertunexpectedmessagefrom/usr/local/lib/ruby/1.9.1/net/http.rb:678:in`conn