gpt4 book ai didi

iphone - 自定义 PhoneGap 插件 (iOS) 功能问题

转载 作者:行者123 更新时间:2023-11-29 13:39:27 25 4
gpt4 key购买 nike

我正在使用本教程创建自定义 PhoneGap 插件: http://wiki.phonegap.com/w/page/36753496/How%20to%20Create%20a%20PhoneGap%20Plugin%20for%20iOS

我已经成功地使用了作者的例子,但是我有几个问题我还没有找到答案。

创建 JavaScript 函数时,代码为:

var MyPlugin = {

nativeFunction: function(types, success, fail) {
return PhoneGap.exec(success, fail, "PluginClass", "print", types);
}
};

有没有办法在没有 var MyPlugin = {...};nativeFunction 的情况下进行设置?换句话说,我们可以定义我们的插件的函数,如 myfunc = function()...

其次,假设有一种方法可以执行上述操作,那么这段代码是否可以:

MyPlugin.nativeFunction(
["HelloWorld"] ,
function(result) {
alert("Success : \r\n"+result);
},
function(error) {
alert("Error : \r\n"+error);
}
);

(测试插件的测试代码)也写得更规范一点?即,只是调用 Javascript 函数而不包含 nativeFunction 部分?

非常感谢任何意见,谢谢!

最佳答案

插件的 phonegap 文档很糟糕。老实说,我在尝试创建自己的时遇到了很多问题。一些提示:

这样做的原因

var MyPlugin = {};

是因为这允许我们确定特定于该 js 对象的范围。示例:

MyPlugin.myFunction();

与您的问题类似,我最喜欢的创建插件的方法是制作原型(prototype)

var MyPlugin = {}; // our object

MyPlugin.prototype.myFunction = function(success,fail,types){

}

让插件火起来的关键是这个——

PhoneGap.exec(success,fail,"MyPlugin","myFunction",types);

但是他们遗漏的一点是,如果我们想要对我们的插件进行选择怎么办?如果我们想要做的不仅仅是传递一个字符串怎么办,那么这个例子就不起作用了。修复很简单,但根本没有谈及。

var MyPlugin = {};
MyPlugin.prototype.myFunction = function(success,fail,options){
var defaults = {
foo: '', // these are options
bar: '',
};

// this parses our "options"
for(var key in defaults) {
if(typeof options[key] !== "undefined") defaults[key] = options[key];
}

return PhoneGap.exec(success,fail,"MyPlugin","myFunction",[defaults]);
}

当我们在没有 javascript 的情况下调用它时 -

var foo = MyPlugin.myFunction(success,fail,{
foo:'hello',
bar:'world'
});

您会注意到大多数 phonegap API 使用这种语法,我觉得这很奇怪,因为他们的文档并没有真正讨论如何做到这一点。

我有一篇关于我创建的插件的帖子,您可以查看它以供引用。博客 - http://www.drewdahlman.com/meusLabs/?p=138Git-https://github.com/DrewDahlman/ImageFilter

关于iphone - 自定义 PhoneGap 插件 (iOS) 功能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590322/

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