我正在努力开发一张卡片,当点击时,可以从设备上打开任何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。
2条答案
按热度按时间yjghlzjz1#
您提到您正在使用Ionic 3和Angular 5(检查您的ionic.config.json文件您的项目类型必须是ionic-angular),并且您似乎正在使用的插件的**@ionic-native/launch-navigator版本>=5.0.0,该版本支持Ionic 4和Angular 6以及项目类型angular**。
您需要使用较低版本的本机插件以使应用程序正常工作。
先卸载插件
并为您的项目类型安装正确的版本。
由于您没有使用Angular 6,因此不需要在导入的末尾追加ngx。
比如下面
另外,不要忘记将插件添加到应用程序模块的提供程序数组中。
参考号:https://stackoverflow.com/a/54474247/6617276
lf5gs5x22#
我已经尝试了较低的版本,但它不工作,由于离子/Angular 兼容性。我已经尝试了v5.0.0,但问题没有解决。然后我用android代码调试,发现AndroidManifest.xml文件中的一些设置如下:
Android 11查询需要特殊权限后,在检查打开Map适用的包(您的移动终端中安装了相关应用)时抛出NameNotFoundException异常。您可以在以下链接中找到详细信息,NameNotFoundException when calling getPackageInfo on Android 11
谢谢