2016-03-13 89 views
8

我在iOS上使用RN 0.20。我想创建一个链接,如果您点击该链接,它会将您重定向到手机中可用的地图应用程序及其坐标。这是我使用链接组件完成的。在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)); 
} 

但它一直给我'不知道如何去'。但是,从https://facebook.github.io/react-native/docs/linking.html的文档中可以看出,使用geo:链接到地图是可行的。

回答

15

使用正确的URL方案

看一看的iOS official documentation。 要打开地图,使用建议方案:

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

非常感谢您的帮助:) –

+0

OK,但为什么与'geo' URL链接不起作用?正如@KelvinAliyanto所提到的,它显然是用React Native文档编写的。我预料到,当我使用'geo' URL时,弹出一个菜单(如果有超过1个地图应用程序),就像这样:http://www.kevinandamanda.com/whatsnew/wp-content/uploads/2014/ 01 /创建一个自定义旅行地图与谷歌地图新我的地图教程29-406x720.jpg – user3452568

+1

请按照链接到iOS的官方文档。它说:“与某些方案不同,地图URL不是以”地图“方案标识符开头的,而是将地图链接指定为常规http链接,并在Safari或目标平台上的地图应用程序中打开。” – purii

-2

可以使用反应 - 本机开放的地图包

  1. 安装库 $ npm install --save react-native-open-maps

  2. 进口添加到文件顶部 import openMap from 'react-native-open-maps'

  3. 把它放在一起

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