2016-03-13 46 views
8

Używam RN 0,20 dla iOS. Chcę utworzyć link, który po kliknięciu tego linku przekieruje Cię do aplikacji mapy dostępnej w telefonie z jego współrzędnymi. Właśnie to zrobiłem, używając składnika Linking.Łączenie mapy w React Native

redirectToMap() { 
    Linking.canOpenURL('geo:37.484847,-122.148386').then(supported => { 
     if (supported) { 
      Linking.openURL('geo:37.484847,-122.148386'); 
     } else { 
      console.log('Don\'t know how to go'); 
     } 
    }).catch(err => console.error('An error occurred', err)); 
} 

Ale nadal daje mi "Nie wiem, jak iść". Jednak widzę z jego dokumentacji w https://facebook.github.io/react-native/docs/linking.html, że jest możliwe użycie geo: do połączenia z mapą.

Odpowiedz

15

Zastosowanie prawidłowy schemat URL

Wystarczy popatrzeć na official documentation iOS. Aby otworzyć mapy, użyć sugerowanego schematu:

http://maps.apple.com/?ll=<lat>,<long> 
+0

dziękuję za pomocą :) –

+0

OK, ale dlaczego powiązanie z 'geo' URL nie działa? Jak wspomniano w @KelvinAliyanto, jest to wyraźnie napisane w dokumentacji React Native. Spodziewałem się, że gdy użyję adresu URL 'geo', pojawi się menu (jeśli jest więcej niż jedna aplikacja mapowa), coś takiego: http://www.kevinandamanda.com/whatsnew/wp-content/uploads/2014/ 01/Utwórz-a-Custom-Travel-Map-with-Google-Maps-New-My-Maps-Tutorial-29-406x720.jpg – user3452568

+1

Skorzystaj z linku do oficjalnej dokumentacji iOS. Mówi: "W przeciwieństwie do niektórych schematów, adresy URL map nie zaczynają się od identyfikatora schematu" mapy ", natomiast łącza do map są określane jako zwykłe linki http i są otwierane w Safari lub aplikacji Mapy na platformie docelowej." – purii

-2

Można użyć reagować-native otwartej mapy pakiet

  1. Install repozytorium $ npm install --save react-native-open-maps

  2. Dodaj importu do do góry pliku import openMap from 'react-native-open-maps'

  3. umieścić to wszystko razem

import React, { Component } from 'react' 
import { Button } from 'react-native' 
import openMap from 'react-native-open-maps' 

export default class App extends Component { 
    _goToYosemite() { 
    openMap({ latitude: 37.865101, longitude: -119.538330 }); 
    } 

render() { 
    return (
     <Button 
     color={'#bdc3c7'} 
     onPress={this._goToYosemite} 
     title="Click To Open Maps " /> 
    ); 
    } 
}