Remove navigator.geolocation, use Geolocation

Summary: This is the first diff in an effort to remove Geolocation from React Native. This diff removes the globally injected navigator.geolocation feature and instead requires explicit importing of `Geolocation`. When using Web APIs, people will need to patch `navigator.geolocation` on their own from now on.

Reviewed By: sahrens

Differential Revision: D14692386

fbshipit-source-id: c57b290b49728101250d726d67b1956ff23a9a92
This commit is contained in:
Christoph Nakazawa
2019-04-01 09:04:47 -07:00
committed by Facebook Github Bot
parent 11ac06fda4
commit 45bd2b514b
4 changed files with 8 additions and 12 deletions

View File

@@ -37,7 +37,7 @@ require('setUpRegeneratorRuntime');
require('setUpTimers');
require('setUpXHR');
require('setUpAlert');
require('setUpGeolocation');
require('setUpNavigator');
require('setUpBatchedBridge');
require('setUpSegmentFetcher');
if (__DEV__) {

View File

@@ -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'));

View File

@@ -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,
};