android版,直接上例子
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import {
View,
Text,
Linking,
TouchableOpacity,
} from 'react-native'
class HistroyScreen extends Component {
handlerLink() {
/* navi 驾车导航,bikenavi 骑行导航, walknavi步行导航
* location 和 query 二填一
* location 目的地经纬度 格式:location=40.057406655722,116.2964407172 (先纬度,后经度)
* query 目的地名称
*/
let url = "baidumap://map/navi?query=地点名称"
Linking.canOpenURL(url).then(supported => {
if (!supported) {
console.log('请先下载百度地图');
} else {
return Linking.openURL(url);
}
}).catch(err => console.error('An error occurred', err));
}
handlerLinkGaode() {
/* navi 导航 keywordNavi关键字导航
* sourceApplication 第三方调用应用名称
* dev 起终点偏移
* lat 终点纬度
* lon 终点经度
* poiname 终点POI名称
* keyword 终点关键词
* style 导航方式(0 速度快; 1 费用少; 2 路程短; 3 不走高速;4 躲避拥堵;5 不走高速且避免收费;6 不走高速且躲避拥堵;7 躲避收费和拥堵;8 不走高速躲避收费和拥堵)
*/
let url = "androidamap://keywordNavi?sourceApplication=softname&keyword=地点名称&style=2"
Linking.canOpenURL(url).then(supported => {
if (!supported) {
console.log('请先下载高德地图');
} else {
return Linking.openURL(url);
}
}).catch(err => console.error('An error occurred', err));
}
render() {
return (
<View style={styles.container}>
<Text>调用第三方地图app</Text>
<TouchableOpacity onPress={() => this.handlerLink()}>
<Text>打开百度地图</Text>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.handlerLinkGaode()}>
<Text>打开高德地图</Text>
</TouchableOpacity>
</View>
)
}
}
export default HistroyScreen
百度地图文档:
http://lbsyun.baidu.com/index.php?title=uri/api/android#service-page-anchor10
高德地图文档:
http://lbs.amap.com/api/amap-mobile/guide/android/route