然后调用时延迟对象和phonegap插件的问题
Posted
技术标签:
【中文标题】然后调用时延迟对象和phonegap插件的问题【英文标题】:Issue with deffered object and phonegap plugin when then call 【发布时间】:2014-03-18 14:38:25 【问题描述】:如何执行以下操作
[self.commandDelegate sendPluginResult:[CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:**response**] callbackId:command.callbackId ];
然后得到结果为
$.when(phonegap.function(params)).then(function (**resp**)
//Get the response here
);
【问题讨论】:
【参考方案1】:您需要使用 cordova.exec API 来使其工作
确保您已经在 config.xml 中定义了插件
<feature name="CustomPlugin">
<param name="ios-package" value="CustomPlugin" />
</feature>
使用Objective-C代码实现插件
CustomPlugin.h
#import <Foundation/Foundation.h>
#import <Cordova/CDV.h>
@interface CustomPlugin : CDVPlugin
- (void)sayHello:(CDVInvokedUrlCommand*)command;
@end
CustomPlugin.m
#import "CustomPlugin.h"
@implementation CustomPlugin
- (void)sayHello:(CDVInvokedUrlCommand*)command
NSString *responseString =
[NSString stringWithFormat:@"Hello World, %@", [command.arguments objectAtIndex:0]];
CDVPluginResult *pluginResult =
[CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:responseString];
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
@end
从 javascript 调用插件
function initial()
var name = $("#NameInput").val();
cordova.exec(sayHelloSuccess, sayHelloFailure, "CustomPlugin", "sayHello", [name]);
function sayHelloSuccess(data)
alert("OK: " + data);
function sayHelloFailure(data)
alert("FAIL: " + data);
【讨论】:
以上是关于然后调用时延迟对象和phonegap插件的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 中使用自定义 phonegap 3.3 插件