diff --git a/Libraries/Core/InitializeCore.js b/Libraries/Core/InitializeCore.js index 37660a44d..ad11b26b5 100644 --- a/Libraries/Core/InitializeCore.js +++ b/Libraries/Core/InitializeCore.js @@ -37,7 +37,7 @@ require('setUpRegeneratorRuntime'); require('setUpTimers'); require('setUpXHR'); require('setUpAlert'); -require('setUpGeolocation'); +require('setUpNavigator'); require('setUpBatchedBridge'); require('setUpSegmentFetcher'); if (__DEV__) { diff --git a/Libraries/Core/setUpGeolocation.js b/Libraries/Core/setUpNavigator.js similarity index 74% rename from Libraries/Core/setUpGeolocation.js rename to Libraries/Core/setUpNavigator.js index fd68182bc..796d0b411 100644 --- a/Libraries/Core/setUpGeolocation.js +++ b/Libraries/Core/setUpNavigator.js @@ -11,10 +11,6 @@ const {polyfillObjectProperty} = require('PolyfillFunctions'); -/** - * Set up Geolocation. - * You can use this module directly, or just require InitializeCore. - */ let navigator = global.navigator; if (navigator === undefined) { global.navigator = navigator = {}; @@ -22,4 +18,3 @@ if (navigator === undefined) { // see https://github.com/facebook/react-native/issues/10881 polyfillObjectProperty(navigator, 'product', () => 'ReactNative'); -polyfillObjectProperty(navigator, 'geolocation', () => require('Geolocation')); diff --git a/Libraries/Geolocation/Geolocation.js b/Libraries/Geolocation/Geolocation.js index 9158d62d1..93f5366b9 100644 --- a/Libraries/Geolocation/Geolocation.js +++ b/Libraries/Geolocation/Geolocation.js @@ -29,11 +29,11 @@ type GeoConfiguration = { skipPermissionRequests: boolean, }; -type GeoOptions = { +export type GeoOptions = { timeout?: number, maximumAge?: number, enableHighAccuracy?: boolean, - distanceFilter: number, + distanceFilter?: number, useSignificantChanges?: boolean, }; diff --git a/RNTester/js/GeolocationExample.js b/RNTester/js/GeolocationExample.js index 808f6c074..22cbc1b56 100644 --- a/RNTester/js/GeolocationExample.js +++ b/RNTester/js/GeolocationExample.js @@ -10,6 +10,7 @@ 'use strict'; +import Geolocation from 'Geolocation'; const React = require('react'); const ReactNative = require('react-native'); const {StyleSheet, Text, View, Alert} = ReactNative; @@ -23,7 +24,7 @@ class GeolocationExample extends React.Component<{}, $FlowFixMeState> { watchID: ?number = null; componentDidMount() { - navigator.geolocation.getCurrentPosition( + Geolocation.getCurrentPosition( position => { const initialPosition = JSON.stringify(position); this.setState({initialPosition}); @@ -31,14 +32,14 @@ class GeolocationExample extends React.Component<{}, $FlowFixMeState> { error => Alert.alert('Error', JSON.stringify(error)), {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}, ); - this.watchID = navigator.geolocation.watchPosition(position => { + this.watchID = Geolocation.watchPosition(position => { const lastPosition = JSON.stringify(position); this.setState({lastPosition}); }); } componentWillUnmount() { - this.watchID != null && navigator.geolocation.clearWatch(this.watchID); + this.watchID != null && Geolocation.clearWatch(this.watchID); } render() { @@ -69,7 +70,7 @@ exports.description = 'Examples of using the Geolocation API.'; exports.examples = [ { - title: 'navigator.geolocation', + title: 'Geolocation', render: function(): React.Element { return ; },