我是Ionic和Cordova的新手。我需要使用Cordova为ionic创建一个插件,并将其集成到示例ionic应用程序中。
我遵循的步骤是:
使用Plugman创建了一个简单的离子插件
plugman create --name SayHello --plugin_id cordova-plugin-sayhello -plugin_version 0.0.1
在上述插件中添加了android平台。
cd SayHello/ && plugman platform add --platform_name android
现在我想将此插件集成到我的离子应用程序中。
ionic cordova plugin add ../SayHello
在Home.ts内的离子应用程序中,我编写了这段代码。
declare var cordova: any;
var success = function(result) {
console.log(result);
}
var failure = function(err) {
console.log(err);
}
cordova.plugins.HelloWorld.coolMethod("SayHelloTest", success, failure);
问题是我无法在离子应用程序中成功或失败地调用任何函数。
就像我成功调用函数doSomething一样:
var success = function(result) {
doSomething(result);
}
显示错误doSomething函数未找到。它只能在控制台中打印。
答案 0 :(得分:1)
您需要创建成功作为类函数,然后将其作为绑定函数发送或在箭头内调用。
declare var cordova:any;
class HomePage{
//constructor etc...
doSomething(res:any){
}
success(result){
this.doSomething(result);
}
failure(err){}
//..
//call
callCordovaFunction(){
cordova.plugins.HelloWorld.coolMethod("SayHelloTest", this.success.bind(this), this.failure.bind(this));
//or
cordova.plugins.HelloWorld.coolMethod("SayHelloTest", (res)=>this.success(res),(err)=>this.failure(err));
}
}
答案 1 :(得分:0)
创建插件之后,理论上也可以使用Plugman导入它,以执行您要尝试执行的操作。我读过的命令是:
plugman install --platform android --project projectPlatformPath --plugin pluginPath
无论如何,当我尝试此操作时,对我不起作用,这也使您的插件难以使用。最好使用gulp
为您的插件创建一个离子包装器,然后将其复制到项目的node_modules/@ionic-native
中。这样,您就可以像刚刚用ionic cordova plugin add cordova-plugin-name-here
添加的其他插件一样注入它。这也是Ionic推荐的方法。
在这里写详细的说明很长。只需访问this tutorial 并按照分步说明进行操作即可。
答案 2 :(得分:0)
要安装插件程序,您必须在您的机器上安装 node。然后你可以在你的环境中的任何地方运行以下命令来全局安装plugman,以便它可以从任何目录使用:
$ npm install -g plugman
安装 Plugman 并创建 Cordova 项目后,您可以开始向平台添加插件:
$ plugman create --name SayHello --plugin_id cordova-plugin-sayhello -plugin_version 0.0.1