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,当我尝试返回我的应用程序时,我看到一个白色屏幕显示“找不到/未定义”或错误页面,如下所示。

ErrorPage

对我来说好像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) 
     ); 
    } 
+0

谢谢你的回复,但就像我之前说过的,我已经试过了。可以肯定的是,我使用了粘贴的代码,但当我返回到我的应用程序时,出现白屏,并显示消息“无法获取/未定义”。 – Centos

为什么有人有我的问题,是因为我已经做在HTML一个巨大的错误。

我在同一个按钮上调用两个不同的点击事件的函数。一直到现在我都没注意到的错误。

好消息是我解决了我的问题。