2016-03-13 20 views
8

Sto usando RN 0.20 per iOS. Voglio creare un link in cui, se fai clic su quel link, ti ​​reindirizzerà alle app Map disponibili nel telefono con le sue coordinate. Questo è quello che ho fatto usando il componente di collegamento.Collegamento della mappa in 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)); 
} 

Ma continua a darmi "Non so come andare". Tuttavia, vedo dalla sua documentazione in https://facebook.github.io/react-native/docs/linking.html che è possibile utilizzare geo: per collegarsi alla mappa.

risposta

15

uso corretto schema URL

Date un'occhiata al official documentation di iOS. Per aprire le mappe, utilizzare lo schema suggerito:

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

Grazie mille per l'aiuto :) –

+0

OK, ma perché il collegamento con 'URL geo' non funziona? Come citato da @KelvinAliyanto, è chiaramente scritto nella documentazione di React Native. Mi aspettavo che quando uso l'URL 'geo' si apre un menu (se ci sono più di 1 applicazione per la mappa), qualcosa del genere: http://www.kevinandamanda.com/whatsnew/wp-content/uploads/2014/ 01/Crea-un-personalizzato-Travel-Map-con-Google-Maps-New-My-Maps-Tutorial-29-406x720.jpg – user3452568

+1

Segui il link alla documentazione ufficiale di iOS. Dice: "A differenza di alcuni schemi, gli URL delle mappe non iniziano con un identificatore di schema" mappe ", ma i collegamenti delle mappe sono specificati come normali collegamenti http e sono aperti in Safari o nell'app Maps sulla piattaforma di destinazione." – purii

-2

È possibile utilizzare reagire-native-open-mappe pacchetto

  1. Installare il repository $ npm install --save react-native-open-maps

  2. Aggiungi un'importazione al parte superiore del file import openMap from 'react-native-open-maps'

  3. Mettere tutto insieme

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 " /> 
    ); 
    } 
}