Ionic 离子导航器启动不工作,我点击按钮,什么也没发生

qzlgjiam  于 2023-06-04  发布在  Ionic
关注(0)|答案(2)|浏览(677)

我正在努力开发一张卡片,当点击时,可以从设备上打开任何Map应用程序,主要使用本教程:https://www.youtube.com/watch?v=BHBLjRuzb7s
虽然我编写了相同的代码,但它不起作用,因为当我单击按钮时什么也没有发生。
这是我的HTML文件:

<div>
  <ion-card>
    <div>
      <img src="{{UnitLocal}}">
    </div>
    <ion-item>
      <button ion-button block (click)="navToMaps()">Universidade Tiradentes</button>
    </ion-item>
  </ion-card>
</div>

这是我的TS文件:

import { Component } from '@angular/core';

import { LaunchNavigator, LaunchNavigatorOptions } from '@ionic-native/launch-navigator/ngx';

@Component({
  selector: 'unitmap',
  templateUrl: 'unitmap.html'
})
export class UnitmapComponent {
  private UnitLocal: string;
  private UnitEndereco: string;

  constructor(private launchNavigator: LaunchNavigator) {
    this.UnitLocal = this.getMap();
    this.UnitEndereco = "Universidade Tiradentes, Aracaju";
  }

  navToMaps() {
    console.log('Navegando para mapas');
    this.launchNavigator.navigate(this.UnitEndereco);
  }
}

当我通过浏览器运行应用程序时,我能够获得控制台日志,所以我假设按钮正确引用了navToMaps。

yjghlzjz

yjghlzjz1#

您提到您正在使用Ionic 3和Angular 5(检查您的ionic.config.json文件您的项目类型必须是ionic-angular),并且您似乎正在使用的插件的**@ionic-native/launch-navigator版本>=5.0.0,该版本支持Ionic 4和Angular 6以及项目类型angular**。
您需要使用较低版本的本机插件以使应用程序正常工作。
先卸载插件

npm uninstall @ionic-native/launch-navigator

并为您的项目类型安装正确的版本。

npm i -s @ionic-native/launch-navigator@4.20.0

由于您没有使用Angular 6,因此不需要在导入的末尾追加ngx
比如下面

import { LaunchNavigator, LaunchNavigatorOptions } from '@ionic-native/launch-navigator';

另外,不要忘记将插件添加到应用程序模块的提供程序数组中。

参考号https://stackoverflow.com/a/54474247/6617276

lf5gs5x2

lf5gs5x22#

我已经尝试了较低的版本,但它不工作,由于离子/Angular 兼容性。我已经尝试了v5.0.0,但问题没有解决。然后我用android代码调试,发现AndroidManifest.xml文件中的一些设置如下:

<permission android:name="android.permission.QUERY_ALL_PACKAGES" />
...
<queries>
    <intent>
        <action android:name="android.intent.action.MAIN" />
    </intent>
</queries>
...

Android 11查询需要特殊权限后,在检查打开Map适用的包(您的移动终端中安装了相关应用)时抛出NameNotFoundException异常。您可以在以下链接中找到详细信息,NameNotFoundException when calling getPackageInfo on Android 11

谢谢

相关问题