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 駕車導(dǎo)航褐隆,bikenavi 騎行導(dǎo)航区拳, walknavi步行導(dǎo)航
* location 和 query 二填一
* location 目的地經(jīng)緯度 格式:location=40.057406655722,116.2964407172 (先緯度扣墩,后經(jīng)度)
* 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 導(dǎo)航 keywordNavi關(guān)鍵字導(dǎo)航
* sourceApplication 第三方調(diào)用應(yīng)用名稱
* dev 起終點偏移
* lat 終點緯度
* lon 終點經(jīng)度
* poiname 終點POI名稱
* keyword 終點關(guān)鍵詞
* style 導(dǎo)航方式(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>調(diào)用第三方地圖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