我在公司的IT部门工作,目前正在与iOS开发人员合作开展项目。该项目基本上是一个应用程序,当他们进入250米半径的地理围栏区域时,它将通知用户店内报价并发出警报。目前有160个这些地理围栏区域。
我的公司希望获得一些数据,说明每个/每周/每月在每个地理围栏区域内发送的警报数量(无论我们能得到什么!),以评估用户最活跃的区域。
开发人员告诉我,这实际上是不可能的。我真的很感谢有关这是否可能以及我可以在哪里找到更多信息的指导,即有没有提供此功能的移动分析服务?
过去4天我一直在努力寻找更多相关信息,但收效甚微。我真的很感激一些指导。
答案 0 :(得分:0)
这是可能的,但其他方面是不可能的 - 同时跟踪160个地理位置。这将耗尽电池寿命,实际上一个应用程序可以同时跟踪的最大地理位置数约为20。(这是iOS限制,没有解决方法或“黑客”)
这确实非常有可能。我将尝试在高级抽象上解释它。
为了通知您的用户,您的应用会从iOS通知用户已进入或退出某个区域。
这是您发送查询以在数据库中添加新行(在线,在您的服务器上等)的机会,其中包含通知触发的日期以及触发的地理区域。
这就是它,非常简单。
但是,您应该考虑如何设计数据库,以及应该在其中存储的内容。
答案 1 :(得分:0)
告诉你的“开发人员”将一小段代码扔进他的小应用程序中,每当应用程序记录入口或退出事件以及哪个区域触发它时,会在数据库中写入一条小小的记录。 / p>
这是代码,如果他试图再次告诉你它不可能:
- (void)exited:(CLRegion *)region //could also use entered
{
NSString *id = [NSString stringWithFormat:[region identifier]]; //id of region triggered in app
NSString *post = [NSString stringWithFormat:@"id=%@",id]; //append id to data which you post to server so it can record it in your database
NSString *hostStr = @"https://www.yourwebsite.com/yourapp/ios_data.php?"; //actual url of your webpage which will write data to database for you
hostStr = [hostStr stringByAppendingString:post]; //put two and two together
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]]; // package them
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding]; //read response from server (your own output confirming record)
}
有问题吗?