Project: titanium
Issue TIMOB-23655: Windows: Implement Ti.Geolocation.requestLocationPermissions/hasLocationPermissions methods to match iOS and Android behaviour
h5.Description As part of TIMOB-19479 the Gelocation permissions was rewritten to be consistent across iOS and Android and use Ti.Geolocation.hasPermissions. Windows currently uses a different way to request permissions that can be seen in TIMOB-23389, however it should move to match iOS and Android. A code sample can be found below and a real world example found [in Geocoder|https://github.com/appcelerator-developer-relations/appc-sample-geocoder/blob/stable/app/lib/permissions.js#L59] {code} Ti.Geolocation.preferredProvider = "gps"; function locationCallback(e) { if (!e.success || e.error) { alert("error:" + JSON.stringify(e.error)); return; } Ti.API.info(JSON.stringify(e)); var longitude = e.coords.longitude; var latitude = e.coords.latitude; }; if (Ti.Geolocation.hasLocationPermissions(Ti.Geolocation.AUTHORIZATION_ALWAYS)) { alert("Access already granted!"); Titanium.Geolocation.addEventListener("location", locationCallback); } else { Ti.Geolocation.requestLocationPermissions(Ti.Geolocation.AUTHORIZATION_ALWAYS, function(e) { if (e.success === true) { alert("Access now granted!"); Titanium.Geolocation.addEventListener("location", locationCallback); } else { console.log("Access denied, error: " + e.error); } }); } {code} Additionally to this Ti.Geolocation.hasLocationPermissions should also be implemented to allow a user to check if permissions have already been granted h5.Steps to reproduce # Run the code above on Windows Platform {{appc run -p windows }} h5.Actual result You should be prompted to allow location h5.Expected result The app will throw an error as the methods are not implemented
Story points: 5