Ionic 3 - 如何在android中打开外部原生地图?
问题描述:
我到处搜索过,任何人似乎都有同样的问题。 我的需求是导航到外部原生地图(谷歌地图或苹果地图)。 要做到这一点我使用InAppBrowser用下面的代码:Ionic 3 - 如何在android中打开外部原生地图?
if(this.platform.is('ios')){
const browser = this.iab.create('maps://?q=' + destination, '_system', 'location=yes');
}
else{
const browser = this.iab.create('geo:0,0?q=' + destination, '_system');
}
...它仅适用于iOS。 随着离子v1我一直使用这种方式,它一直在两个平台上工作。
现在,在android上,执行命令时,它有效地打开BUT,当我尝试返回我的应用程序时,我看到一个白色屏幕显示“找不到/未定义”或错误页面,如下所示。
对我来说好像InAppBrowser尝试做一个导航地理,即离子没有找到。
奇怪的是,用“电话”“邮件”和其他命令它没有问题。
我无法理解问题的有效位置。
我已经尝试过LaunchNavigator,结果与InAppBrowser相同。
我留下了一些关于我使用的版本的信息。
cordova-plugin-inappbrowser 1.7.1 "InAppBrowser"
@ionic-native/[email protected]^3.14.0
cli packages:
@ionic/cli-utils : 1.9.2
ionic (Ionic CLI) : 3.9.2
global packages:
Cordova CLI : 6.5.0
local packages:
@ionic/app-scripts : 1.3.12
Cordova Platforms : android 6.1.2 ios 4.3.1
Ionic Framework : ionic-angular 3.6.0
System:
ios-deploy : 1.9.0
ios-sim : 5.0.11
Node : v6.10.3
npm : 3.10.10
OS : macOS Sierra
Xcode : Xcode 8.3.3 Build version 8E3004b
预先感谢您的帮助!
答
使用此,https://ionicframework.com/docs/native/launch-navigator/
lunchNavigator(lati: any, lngti: any) {
let options: LaunchNavigatorOptions = {
// app: LaunchNavigator.APPS.USER_SELECT
};
this.launchNavigator.navigate([parseFloat(lati), parseFloat(lngti)], options)
.then(
success => console.log('Launched navigator'),
error => console.log('Error launching navigator', error)
);
}
答
为什么有人有我的问题,是因为我已经做在HTML一个巨大的错误。
我在同一个按钮上调用两个不同的点击事件的函数。一直到现在我都没注意到的错误。
好消息是我解决了我的问题。
谢谢你的回复,但就像我之前说过的,我已经试过了。可以肯定的是,我使用了粘贴的代码,但当我返回到我的应用程序时,出现白屏,并显示消息“无法获取/未定义”。 – Centos