在zoom
和Android
的{{3}}应用中,我需要使用iOS
(如果已安装)或{打开特定的地理位置{1}}。我发现Ionic 3几乎也是如此。
Google Maps
? 答案 0 :(得分:0)
我遇到了同样的问题,这就是我想到的。有三个重要步骤
import { Platform } from 'ionic-angular';
import { LaunchNavigator, LaunchNavigatorOptions } from '@ionic-native/launch-navigator';
import { InAppBrowser } from '@ionic-native/in-app-browser';
然后我们将拥有在iOS上打开Google Maps的所有功能(如果没有导航的话)
if (this.platform.is('ios')) {
//try google maps first
this.launchNavigator.isAppAvailable(this.launchNavigator.APP.GOOGLE_MAPS).then(
response => {
if(response) {
window.open('comgooglemaps://?q=' + lat + ',' + lng + '(' + marker_name + ')', '_system');
}
else {
window.open('maps://?q=' + lat + ',' + lng, '_system');
}
},
failure => {
//check failed;
}
);
}
else if (this.platform.is('android')) {
window.open('geo://' + lat + ',' + lng + '?q=' + lat + ',' + lng + '(' + marker_name + ')', '_system');
}
答案 1 :(得分:0)
试试这个,它让用户选择要打开的应用导航(waze 或 map 或...),并在 纬度 和 上添加标记>经度给定:
import { Platform } from '@ionic/angular';
...
constructor(
public platform: Platform
) {
}
public openMapsApp(lat: number, lng: number) {
const geocoords = lat + ',' + lng;
if (
this.platform.is('ios')
&& this.platform.is('iphone')
&& this.platform.is('ipad')
) {
window.open('maps://?q=' + geocoords, '_system');
return;
}
if (this.platform.is('desktop')) {
window.open('https://www.google.com/maps?q=' + geocoords);
return;
}
const label = encodeURI('7 East Street'); // encode the label!
window.open('geo:' + geocoords + '?q=' + geocoords + '(' + label + ')', '_system');
}