forked from NativeScript/NativeScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlocation-example.ts
More file actions
69 lines (61 loc) · 2.57 KB
/
location-example.ts
File metadata and controls
69 lines (61 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import pages = require("ui/page");
import locationModule = require("location");
import dialogsModule = require("ui/dialogs");
import platformModule = require("platform");
import textViewModule = require("ui/text-view");
import observable = require("data/observable");
import appModule = require("application");
var locationManager = new locationModule.LocationManager();
export function onStartButtonTap(args: observable.EventData) {
console.log("Start button tapped");
var textView = <textViewModule.TextView>(page.getViewById("textView"));
locationManager.startLocationMonitoring(function (location) {
console.log("location-example.location: " + printLocation(location));
textView.text = printLocation(location) + "\r\n" + textView.text;
}, null, { desiredAccuracy: 300, maximumAge: 20000, minimumUpdateTime: 5000, updateDistance: 20 });
}
function printLocation(location: locationModule.Location) {
return "longitude: " + location.longitude + ", " +
"latitude: " + location.latitude + ", " +
"timeStamp: " + location.timestamp + ", " +
"horizontalAccuracy: " + location.horizontalAccuracy + ", " +
"verticalAccuracy: " + location.verticalAccuracy;
}
export function onStopButtonTap(args: observable.EventData) {
locationManager.stopLocationMonitoring();
}
export function onRequestButtonTap(args: observable.EventData) {
checkLocationService(page);
}
var page: pages.Page;
export function pageLoaded(args: observable.EventData) {
page = <pages.Page>(args.object);
}
var checkLocationService = function (page: pages.Page) {
if (locationModule.LocationManager.isEnabled()) {
console.log("LocationManager.isEnabled");
}
else {
console.log("LocationManager.is not Enabled");
if (page.android) {
dialogsModule.confirm({
message: "Location service is not enabled!",
okButtonText: "Open location settings ...",
cancelButtonText: "Cancel", title: "Confirm"
}).then((r) => {
if (r) {
// do not forget to add android.permission.ACCESS_FINE_LOCATION in your manifest file
(<android.app.Activity>appModule.android.currentContext).startActivityForResult(new android.content.Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);
}
}, null);
}
else if (page.ios) {
if (platformModule.device.osVersion.indexOf("8") === 0) {
// we need special handling of iOS 8.0 version, since some breaking changes regarding location
// do not forget to put NSLocationWhenInUseUsageDescription in app.plist file
var iosLocationManager = CLLocationManager.alloc().init();
iosLocationManager.requestWhenInUseAuthorization();
}
}
}
}