我是Ionic 2的新手以及周围的一切。我正在尝试设置我的第一个移动应用程序:触摸按钮我会打开原生导航(例如Google Maps for Android)。我安装了launchnavigator
插件:
ionic plugin add uk.co.workingedge.phonegap.plugin.launchnavigator
并在cremony.ts页面内:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { LaunchNavigator, LaunchNavigatorOptions } from 'ionic-native';
@Component({
selector: 'page-ceremony',
templateUrl: 'ceremony.html'
})
export class Ceremony {
constructor(public navCtrl: NavController) {
}
navigate() {
let options: LaunchNavigatorOptions = {
start: ""
};
LaunchNavigator.navigate("London, UK", options)
.then(
success => alert('Launched navigator'),
error => alert('Error launching navigator: ' + error)
);
}
}
制作构建npm run build
并使用ionic upload
将其上传到IonicView。
我做了this link中建议但运气不同的所有事情。
但是当我点击Ionic View中的按钮(在logo.html中一个简单的<button ion-button (click)="navigate()">Navigate</button>
)时,错误说:Error launghing navigator: plugin_not_installed
。
我检查了项目,plugins
目录包含uk.co.workingedge.phonegap.plugin.launchnavigatorlooks
目录。所以我查看了package.json
和config.xml
,并在uk.co.workingedge.phonegap.plugin.launchnavigator
中添加了值cordovaPlugins
并在<plugin name="uk.co.workingedge.phonegap.plugin.launchnavigator" spec="~3.2.1" />
根目录中标记widget
。 npm run build
,ionic upload
,但没有任何变化。
我的错误在哪里?
答案 0 :(得分:2)
新答案,您的项目有问题。你修改过index.html文件了吗?它还包括cordova.js吗?如果是这样,您使用的是什么版本的Ionic和Cordova?
我使用您的确切代码制作了此示例应用程序,它在iOS和ANdroid上都运行良好:https://github.com/roblouie/navigator-plugin-test
在iOS上录制了一个屏幕:https://giphy.com/gifs/xTiN0EEQV82aIXWnQI 刚抓取Android上的图片,但效果相同:
请从github尝试该项目。
答案 1 :(得分:1)
只有在platform准备就绪后才需要调用Cordova插件。
constructor(public navCtrl: NavController,public platform:Platform) {//inject in constructor
}
在您的函数navigate()
this.platform.ready().then(()=>{
LaunchNavigator.navigate("London, UK", options)
.then(
success => alert('Launched navigator'),
error => alert('Error launching navigator: ' + error)
);
});
答案 2 :(得分:1)
您的错误原因是您正在使用Ionic View。你的Ionic应用只是html,css和javascript。但是,您使用的任何插件都是用Java for Android和Objective C for iOS编写的。然后将该插件源代码编译到每个平台的应用程序中。
使用Ionic View,它只会上传你的应用程序,html,css和javascript。没有编译。 Ionic View是应用程序本身,它会加载您的代码。所以没有包含你自己的插件。 Ionic View本身确实安装了一些插件,您可以在此处看到该列表:https://docs.ionic.io/tools/view/#supported-plugins
不幸的是,如果不构建和部署到设备或模拟器,您将无法测试不在该列表中的任何插件。