
- React Native 教程
- React Native - 主頁
- 核心概念
- React Native - 概覽
- React Native - 環境設定
- React Native - App
- React Native - 狀態
- React Native - 屬性
- React Native - 樣式
- React Native - Flexbox
- React Native - 列表檢視 (ListView)
- React Native - 文字輸入
- React Native - 滾動檢視 (ScrollView)
- React Native - 影像
- React Native - HTTP
- React Native - 按鈕
- React Native - 動畫
- React Native - 除錯
- React Native - 路由
- React Native - 執行 iOS
- React Native - 執行 Android
- 元件和 API
- React Native - 檢視 (View)
- React Native - WebView
- React Native - 模態視窗 (Modal)
- React Native - 活動指示器 (ActivityIndicator)
- React Native - 選擇器 (Picker)
- React Native - 狀態列 (StatusBar)
- React Native - 開關 (Switch)
- React Native - 文字 (Text)
- React Native - 警告 (Alert)
- React Native - 地理定位
- React Native - 非同步儲存 (AsyncStorage)
- React Native 實用資源
- React Native - 快速指南
- React Native - 實用資源
- React Native - 討論
React Native - 地理定位
在本節中,我們將展示如何使用 地理定位。
步驟 1:App.js
import React from 'react' import GeolocationExample from './geolocation_example.js' const App = () => { return ( <GeolocationExample /> ) } export default App
步驟 2:地理定位
首先,我們將設定一個初始狀態,用於儲存初始位置和最終位置。
現在,我們使用 navigator.geolocation.getCurrentPosition 在元件掛載時獲取裝置當前的位置。我們將字串化響應,以便更新狀態。
navigator.geolocation.watchPosition 用於跟蹤使用者位置。我們還將在此步驟中清除觀察者。
AsyncStorageExample.js
import React, { Component } from 'react' import { View, Text, Switch, StyleSheet} from 'react-native' class SwichExample extends Component { state = { initialPosition: 'unknown', lastPosition: 'unknown', } watchID: ?number = null; componentDidMount = () => { navigator.geolocation.getCurrentPosition( (position) => { const initialPosition = JSON.stringify(position); this.setState({ initialPosition }); }, (error) => alert(error.message), { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 } ); this.watchID = navigator.geolocation.watchPosition((position) => { const lastPosition = JSON.stringify(position); this.setState({ lastPosition }); }); } componentWillUnmount = () => { navigator.geolocation.clearWatch(this.watchID); } render() { return ( <View style = {styles.container}> <Text style = {styles.boldText}> Initial position: </Text> <Text> {this.state.initialPosition} </Text> <Text style = {styles.boldText}> Current position: </Text> <Text> {this.state.lastPosition} </Text> </View> ) } } export default SwichExample const styles = StyleSheet.create ({ container: { flex: 1, alignItems: 'center', marginTop: 50 }, boldText: { fontSize: 30, color: 'red', } })
廣告