{"id":1254,"date":"2016-05-21T10:10:40","date_gmt":"2016-05-21T10:10:40","guid":{"rendered":"https:\/\/zogspat.tk\/blog\/?p=1254"},"modified":"2016-06-06T16:51:32","modified_gmt":"2016-06-06T16:51:32","slug":"how-does-the-twitter-app-know-my-location","status":"publish","type":"post","link":"https:\/\/the-plot.com\/blog\/?p=1254","title":{"rendered":"How does the Twitter app know my location?"},"content":{"rendered":"<p>[Edit: the answer to this is actually very simple. I&#8217;d been focusing so much on the various mobile frameworks that I forgot about the obvious one: it&#8217;s my source IP. There are services out there that take your IP address and, based on service provider information, turn it into a location. The same mechanism is going to be available whether you are using your browser &#8211; and where you will see commonly see location specific ads &#8211; or if\u00a0you&#8217;re using an app.]<\/p>\n<p>OK, maybe not the most thrilling of titles, but <a href=\"https:\/\/itunes.apple.com\/gb\/app\/pin-your-pics\/id592822522?mt=8\">I&#8217;ve been interested<\/a> in location services pretty much since I started developing for iOS, and something happened this morning while using the Twitter app that piqued my interest.<\/p>\n<p>I followed a link to a site, which popped up an embedded browser &#8211; so a UIWebView. At the bottom of the article, amid the usual rubbish, was an link to another site telling me how a millionaire in my named home town was earning an unlikely amount working from home.<\/p>\n<p>The thing is that in my Location Services settings, I have the Twitter app set to &#8216;never&#8217;. There are a couple of other possible candidates. I was wondering if the UIWebView was inheriting some settings from Safari, but I have the Safari Websites setting on &#8216;never&#8217;. Also, the call to start the Location Manager happens in the <a href=\"http:\/\/stackoverflow.com\/questions\/26631417\/allowing-location-access-inside-uiwebview\">calling app<\/a> &#8211; so the corresponding privacy setting should be in the context of that app.<\/p>\n<p>Looking at the other System Settings under Locations Services, there&#8217;s one other candidate: iAds. I&#8217;ve not used this in my own apps, but I&#8217;ve just checked: they are views embedded in native apps, not in UIWebViews. And anyway, I have the setting disabled.<\/p>\n<p>There are a few other System Settings that I have set to\u00a0&#8216;on&#8217;, such as WiFi Networking and Location-Based alerts, none of which should have anything to do with the Twitter app.<\/p>\n<p>So what&#8217;s going on? Wild conspiracy theories aside, I can&#8217;t understand how the app could be getting my location when the primary privacy setting for the app is &#8216;never&#8217;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Edit: the answer to this is actually very simple. I&#8217;d been focusing so much on the various mobile frameworks that I forgot about the obvious one: it&#8217;s my source IP. There are services out there that take your IP address &hellip; <a href=\"https:\/\/the-plot.com\/blog\/?p=1254\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1254","post","type-post","status-publish","format-standard","hentry","category-ios-development"],"_links":{"self":[{"href":"https:\/\/the-plot.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/the-plot.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/the-plot.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/the-plot.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/the-plot.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1254"}],"version-history":[{"count":3,"href":"https:\/\/the-plot.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1254\/revisions"}],"predecessor-version":[{"id":1258,"href":"https:\/\/the-plot.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1254\/revisions\/1258"}],"wp:attachment":[{"href":"https:\/\/the-plot.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/the-plot.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/the-plot.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}