繁体   English   中英

输入iBeacon范围后,是否可以在Foreground中启动应用程序?

[英]Can I launch an app in Foreground when I enter an iBeacon range?

我正在使用iBeacons为iOS创建一个应用程序。 我知道,如果我设置了一个要监视的区域,那么当我输入/退出一个区域或打开该区域内的屏幕时,框架可以调用我的应用程序。 我也设法在此回调中创建本地通知。 我的问题是,是否有可能像用户启动应用一样将其置于前台?

不,我不认为这是可能的。 苹果公司的理念是,用户可以控制前台的应用程序。 将应用程序置于前台的唯一三种方法是:(1)点击其图标,(2)点击与该应用程序相关的通知,或(3)通过自定义URL从另一个应用程序启动该应用程序。

我有一位长期以来一直坚信这是可能的同事,所以我今天亲自尝试了一下,以确保能看到。 在我们的开源SavengerHunt应用程序中 ,我修改了AppDelegate的didDetermineState方法,以添加以下代码以尝试将应用程序强制为前台。

        NSLog(@"Attempting for force window %@ into foreground", self.window);
        [self.window makeKeyAndVisible];
        NSLog(@"Done with attempt");

该代码在后台检测到iBeacon时执行,并且日志行按预期方式显示。 但是,该应用程序未更改为前台。

       2014-03-06 11:35:43.655 scavengerhunt[277:60b] Sending a notification that a beacon is nearby
       2014-03-06 11:35:43.678 scavengerhunt[277:60b] Attempting for force window <UIWindow: 0x14e96730; frame = (0 0; 320 480); gestureRecognizers = <NSArray: 0x14e95870>; layer = <UIWindowLayer: 0x14e961f0>> into foreground
       2014-03-06 11:35:43.686 scavengerhunt[277:60b] Done with attempt

鉴于这行不通,最好的办法是向用户显示本地通知。 如果他们点击它,您的应用程序将移至前台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM