Tag: 背景

如何保持iphone的ios的xmpp连接,而在后台?

iPhone的XMPPFrameworkfunction强大。 我已经启动并运行了,但是如何在后台保持连接超过10分钟? 我将不胜感激更多的文件/如何做到这一点。 所以这个用例很简单而且很常见:Joe在线和在iPhone聊天应用程序中。 他离开聊天应用程序,去Safari浏览器,玩游戏,stream动电影,并做了其他的东西3小时(或更多)。 乔想在这段时间内不断收到消息。 示例应用程序允许Joe在后台接收本地通知,但似乎只有10分钟。 这是相关的代码(我认为)。 谢谢! 为了帮助其他人,甚至到了这一步,你需要将xmppstream属性enableBackgroundingSocket设置为YES(在你应该复制的iphoneXMPP示例项目中为你完成)以及appname-info.plist(即iosChat- info-plist)文件,你需要添加一个新的键/值对。 你应该右键点击“添加行”。 你应该select关键的“所需的背景模式”,然后input“voip”。 按下Enter键后,Xcode会检测到您的意思是“应用程序提供IP语音服务”。 这让你在后台打开聊天应用10分钟(我想)。 但我们无限期地想要,我怀疑答案在于下面的方法。 我只是应该“重新连接”在这个方法或东西,例如,[自我连接](我有一个连接方法)? – (void)applicationDidEnterBackground:(UIApplication *)application{ DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD); if ([application respondsToSelector:@selector(setKeepAliveTimeout:handler:)]) { [application setKeepAliveTimeout:600 handler:^{ DDLogVerbose(@"KeepAliveHandler"); // Do other keep alive stuff here. }]; }}

当应用程序处于后台时,向服务器发送经纬度

我经历了这么多的链接,甚至在我还没有find获得经纬度的合适解决scheme之后。 定期iOS背景位置更新 具有“位置”后台模式的iOS长时间运行后台计时器 我尝试了一些链接和论坛,但它只工作了3分钟,然后应用程序根本不更新用户的位置。 – (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: […]

在iOS7上检测应用程序何时从locking屏幕变为活动状态

从locking屏幕变为活动状态时(locking状态),我的应用程序具有不同的行为,或者从其他任何情况变为活动状态。 在iOS 6和更低,我可以检测到这一点 UIApplicationState state = [[UIApplication sharedApplication] applicationState]; if (UIApplicationStateInactive == state) // Coming from locked screen (iOS 6) else // Coming from Springboard, another app, etc… 但在iOS 7上,两种情况下的状态值均为UIApplicationStateBackground 。 这是预期的行为? 如何正确检测应用程序是否从锁屏启动? 注册的开发者,我已经在NDA解除之前在devforums上发布了,请看这里

永远在后台运行一个Swift 2.0应用程序来更新位置到服务器

我写了下面的代码,它有一个每分钟调用一次callback函数的计时器。 当应用程序进入后台,我已经启动了另一个计时器,调用相同的callback方法,但后台计时器只能工作三分钟。 我明白,苹果允许后台任务只有三分钟。 我的应用程序更像是一个跟踪应用程序,即使应用程序在后台,也能跟踪用户的位置,所以我需要实现此function。 我了解到beginBackgroundTaskWithExpirationHandler是要使用的,但我不知道我的实现是否正确。 注意:我在plist toApp注册了位置更新所需的后台模式。 任何工作代码或链接非常感谢。 override func viewDidLoad() { super.viewDidLoad() timeInMinutes = 1 * 60 self.locationManager.requestAlwaysAuthorization() self.locationManager.requestWhenInUseAuthorization() if CLLocationManager.locationServicesEnabled() { locationManager.delegate = self locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters locationManager.startUpdatingLocation() } var timer = NSTimer.scheduledTimerWithTimeInterval( timeInMinutes, target: self, selector: "updateLocation", userInfo: nil, repeats: true) } func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]){ let locValue:CLLocationCoordinate2D = manager.location!.coordinate […]

iOS:连接到Facebook,无需离开应用程序进行授权

我知道这是可能的graphicsAPI之前。 我工作的iPhone应用程序可能不在后台(其中一个要求)。 此外,应用程序启动时还有一个login屏幕。 因此,为了向Facebook进行身份validation,然后返回到应用程序,并且每次用户想要共享某个内容时再次login,都不适合转到后台。 所以,我的问题是,如果没有离开应用程序,有没有办法与Facebook进行身份validation。 顺便说一句,我曾尝试使用旧的API。 它在一开始工作,但昨天停止工作。 我只是在旧的FacebookloginWeb视图中看到一个空白屏幕。 我也检查了一个使用旧的Facebook Connect API的老应用程序,并且在该应用程序中也获得了相同的空白login屏幕。 任何想法将不胜感激。 先谢谢你。 – 迈克尔。

当我进入iBeacon系列时,我可以在前台启动应用吗?

我正在使用iBeacons为iOS创build应用程序。 我知道,如果我设置了一个要监视的区域,当我input/退出一个区域时,框架可以调用我的应用程序,或者打开区域内的屏幕。 我已经设法在这个callback中创build一个本地通知。 我的问题是,是否有可能将应用程序放到前台,就像用户启动的一样?

如果iOS注册到UIBackgroundModes的位置,iOS会唤醒终止的应用程序吗?

我知道,如果应用程序使用“重大变更位置服务”,则即使应用程序终止,iOS也会将其唤醒。 如果应用程序使用标准的位置服务并将位置指定为UIBackgroundModes的关键字,则无法find有关此案例的明确答案:即使该应用程序已终止,iOS是否也会将其唤醒以提供更新? 还是应用程序需要在后台运行来获取位置更新callback? 更新:当时我问这个,我没有时间去testing它。 但是当我在这里得到一个答案后,我写了这段代码在我的应用程序的委托,看看我终止的应用程序将获得位置更新时重新启动。 当我收到更新通知时,我正在显示一个UILocalNotification。 然而,当我终止我的应用程序,然后改变我在城市的位置,应用程序不重新启动,我没有得到任何更新。 你能告诉我我做错了什么吗? 更新#2:根据本次问答的最终发现,这段代码没有任何问题,这是使用标准位置服务的应用程序的预期行为,不应在终止后重新启动。 我在Info.plist文件中添加了位置作为UIBackgroundModes之一。 这是我的应用程序委托的位置相关部分: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [UIApplication sharedApplication].applicationIconBadgeNumber = 0; m_locManager = [[CLLocationManager alloc] init]; m_locManager.delegate = self; [m_locManager startUpdatingLocation]; return YES; } – (void)applicationDidEnterBackground:(UIApplication *)application { [m_locManager startUpdatingLocation]; } – (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSLog("%@", [NSString stringWithFormat:@"Background Fail %@", [error localizedDescription]]); } […]

CTCallCenter – 调用事件处理程序 – 处于后台状态

关于苹果文档,在应用程序暂停时无法处理手机状态: http : //developer.apple.com/library/ios/#DOCUMENTATION/NetworkingInternet/Reference/CTCallCenter/Reference/Reference.html “它被暂停时,您的应用程序不会收到通话事件” 这是否也适用于“背景”状态? (由于苹果文档中描述的状态与“暂停”的应用程序状态不同, http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html 我正在使用以下代码处理电话状态: CTCallCenter *callCenter = [[CTCallCenter alloc] init]; callCenter.callEventHandler=^(CTCall* call) { //call state }; 我已经添加了一个本地通知到callEventHandler块,以检查是否会收到一个呼叫事件,而我的应用程序是在后台状态,但是接缝,该块没有执行(我的应用程序有一个后台支持和所有收到的事件TCP)正确处理,而应用程序在后台) 任何帮助表示赞赏! 谢谢

iOS定时后台处理

我希望我的应用程序能够 – 比如说每12个小时 – 即使应用程序没有正常运行或处于后台运行状态,向服务器发送HTTP请求,获取带有版本号的小文件,如果服务器上的版本高于客户端上的版本,然后再下载一些文件到磁盘,以便下次启动时它会在磁盘上find新的内容。 哪些devise模式最适合在ios中执行此类任务? 有一些在我脑海中浮现,但我不是那么有经验。 也许推送通知,当有新版本可用时,服务器需要向所有客户端发送消息。 或者,有什么类似的Android的服务 ,可以帮助? 或者,也许每次应用程序启动(或前往)只是ping服务器,看看有什么新的东西。 或者,每当应用程序开始ping服务器,并在下一个12小时添加一个计时器,以防这个应用程序仍然在前台。 或者,每次应用程序启动时,检查首选项值,如果最后一次服务器被ping通的时间超过12小时,则立即进行ping操作。 然后保存这个ping时间。 选项1可能在服务器上更加沉重,实现起来可能更为复杂(考虑一个新版本),但可能是真正的后台更新的唯一select。 但即便如此,我仍然不希望用户不得不对一些低级数据更新b / wa客户端和服务器做出反应(这就是事实),所以除非推送通知可以直接进入应用程序并执行没有用户干预的东西,那么这个选项不会飞。 选项3-5都是可能的,听起来不太难,但只有当应用程序在前台时才能工作。 据我所知,后台应用程序只能播放音乐,获取位置更新或voip更新。 甚至有这样的声音试图逃避这个限制。 (并没有被批准到商店)。 也许现在的局限性是很好的,那么我该如何玩规则并能够实现周期性的服务器ping(或者更一般地说,即使应用程序在bg中也能解决定期同步客户端和服务器的问题)? 谢谢

在iPad和iPhone上不显示背景图像

我想创build一个背景覆盖在移动网页的部分,所以我使用了下面的CSS代码: #section1{ background: url("background1.png") auto 749px; height: 749px; } 背景在Android(Chrome,Firefox …)上正确显示,但在iPhone或iPad(Safari,Chrome iOS …)上完全不显示。 我已经尝试使用jQuery在DOM准备好时设置这些属性,但没有运气。 我读过的大小可能是一个问题,但图像大约700kB(1124x749px),所以它应该完成Safari网页内容指南规则。 这是什么问题?