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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
---
title: Geolocation.watchPosition()
slug: Web/API/Geolocation/watchPosition
translation_of: Web/API/Geolocation/watchPosition
---
<p>{{ APIref("Geolocation API") }}</p>
<p>O método <strong><code>Geolocation.watchPosition()</code></strong> é usado para registrar uma função manipuladora (handler function) que irá ser chamada automáticamente cada vez que a posição no dispositivo mudar. Você pode, opcionalemnte, especificar uma função de retorno que manipulará qualquer erro.</p>
<p>Este método retorna um valor para o <em>watch ID</em> que pode ser usado para desregistrar o manipulador passando isto para o método {{domxref("Geolocation.clearWatch()")}}.</p>
<h2 id="Síntaxe">Síntaxe</h2>
<pre class="syntaxbox"><em>id</em> = navigator.geolocation.watchPosition(<em>success</em>, <em>error</em>, <em>options</em>)</pre>
<h3 id="Parâmetros">Parâmetros</h3>
<dl>
<dt><em>success</em></dt>
<dd>AUma função de retorno (callback) que pega um objeto {{domxref("Position")}} como parametro de entrada. </dd>
<dt><em>error</em> {{optional_inline}}</dt>
<dd>Uma função de retorno opcional que pega um objeto {{domxref("PositionError")}} como parametro de entrada. </dd>
<dt><em>options</em> {{optional_inline}}</dt>
<dd>Um objeto opcional {{domxref("PositionOptions")}}.</dd>
</dl>
<h2 id="Exemplo">Exemplo</h2>
<pre class="brush: js">var id, target, options;
function success(pos) {
var crd = pos.coords;
if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
console.log('Parabéns, você alcançou o destino');
navigator.geolocation.clearWatch(id);
}
}
function error(err) {
console.warn('ERRO(' + err.code + '): ' + err.message);
}
target = {
latitude : 0,
longitude: 0
};
options = {
enableHighAccuracy: false,
timeout: 5000,
maximumAge: 0
};
id = navigator.geolocation.watchPosition(success, error, options);
</pre>
<h2 id="Especificações">Especificações</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Especificação</th>
<th scope="col">Estado</th>
<th scope="col">Comentário</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('Geolocation', '#watch-position', 'Geolocation.watchPosition()')}}</td>
<td>{{Spec2('Geolocation')}}</td>
<td>Especificação Inicial.</td>
</tr>
</tbody>
</table>
<h2 id="Compatibillidade_de_Navegadores">Compatibillidade de Navegadores</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Suporte básico</td>
<td>5</td>
<td>{{CompatGeckoDesktop("1.9.1")}}</td>
<td>9</td>
<td>10.60<br>
Removido no 15.0<br>
Reintroduzido no 16.0</td>
<td>5</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Chrome for Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Suporte básico</td>
<td>{{CompatUnknown()}}</td>
<td>{{CompatUnknown()}}</td>
<td>{{CompatGeckoMobile("4")}}</td>
<td>{{CompatUnknown()}}</td>
<td>10.60</td>
<td>{{CompatUnknown()}}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="sect1"> </h2>
<h2 id="Veja_também">Veja também</h2>
<ul>
<li><a href="/en-US/docs/WebAPI/Using_geolocation" title="/en-US/docs/WebAPI/Using_geolocation">Usando geolocalização</a></li>
<li>A interface que ele pertence, {{domxref("Geolocation")}}, e como acessar {{domxref("NavigatorGeolocation.geolocation")}}.</li>
<li>A operação oposta: {{domxref("Geolocation.clearWatch()")}}</li>
<li>Um método similar: {{domxref("Geolocation.getCurrentPosition()")}}</li>
</ul>
|