gpt4 book ai didi

javascript - Phonegap/Cordova 2.9 自定义插件创建。有工作示例吗?

转载 作者:行者123 更新时间:2023-11-29 03:40:21 28 4
gpt4 key购买 nike

我知道 github 上有很多phonegap/cordova 插件的示例,但我发现插件的构建方式之间存在很多不一致之处。结构看起来相同(大部分),但几乎每一个的代码和实现似乎都不同。这让我问了几个问题。

  • 2.9 文档说要使用在配置中声明插件的方法,但我收到了构建警告,说要使用该方法。我应该同时使用两者吗?

  • 在 JavaScript 中,声明/实例化插件的正确方法是什么?

  • 我是通过 window.MyPlugin.myMethod 引用我的插件方法还是只是 window.myMethod?

我还有更多问题,但代码会很棒。

有人有一个绝对简单的适用于 iOS 平台的 cordova 2.9 自定义插件示例吗?

最佳答案

这是我几天前编写的一个非常简单的插件,只是为了测试构建一个基于 iOS 的 Cordova 插件。

JS:

var tester = function() {};

tester.prototype.test = function () {
cordova.exec(
function(result) {
navigator.notification.alert('test plugin returned: '+result);
},
function() {
navigator.notification.alert('test plugin error');
},
'TestPlugin',
'test',
['Your test string']
);
};

if(!window.plugins) {
window.plugins = {};
}
if (!window.plugins.tester) {
window.plugins.tester = new tester();
}

调用方式:

<button onclick="window.plugins.tester.test()">TEST PLUGIN</button>

测试插件.h:

#import <Cordova/CDV.h>

@interface TestPlugin : CDVPlugin

- (void)test:(CDVInvokedUrlCommand*)command;

@end

测试插件.m:

#import "TestPlugin.h"
#import <Cordova/CDV.h>

@implementation TestPlugin

- (void)test:(CDVInvokedUrlCommand*)command
{
CDVPluginResult* pluginResult = nil;
NSString* testString = [command.arguments objectAtIndex:0];

if (testString != nil && [testString length] > 0) {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:testString];
} else {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
}

[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}

@end

已添加到/platforms/ios/{PROJECT_NAME}/Resources/config.xml:

    <plugin name="TestPlugin" value="TestPlugin" />

关于javascript - Phonegap/Cordova 2.9 自定义插件创建。有工作示例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18539696/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com