我有使用PhoneGap 2.8.1制作的iPhone应用程序,我最近遇到了一个奇怪的问题: 我编写了一些插件,用于在设备上存储一些应用程序机密,散列给定数据(使用这些机密)并将此哈希值返回给JS。
当我在安装后第一次运行我的应用程序时,一切正常。 但是,当我再次启动它时,应用程序会在我的插件方法开始之前(或者可能)开始冻结。 第三方插件在开始之前加载好,但是当涉及到我的插件时 - 什么也没发生。
在Xcode控制台上没有任何内容,在weinre控制台上没有任何内容。空值。没有错误异常,没有来自本机代码的日志。 当我尝试从weinre console手动运行一些本机方法时,也没有任何反应。
但是当我按下主页按钮并返回到我的应用程序背景时,一切都神奇地开始工作!
有没有人有类似的问题?有解决方案吗线索?
答案 0 :(得分:0)
我有散列数据的方法,这些数据将在请求中发送到我的API。我这样用它:
window.plugins.protocol.hamac data, (results) =>
# work with results
本机代码如下所示:
- (void)hamac:(CDVInvokedUrlCommand*)command {
NSLog(@"HAMAC STARTED!");
CDVPluginResult* pluginResult = nil;
@try {
NSDictionary* data = [command.arguments objectAtIndex:0];
if (data != nil) {
// prepare string to be hashed
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary: @{
@"status": @YES,
@"h": [self sha1:[NSString stringWithFormat:@"%@", stringToHash]
}];
} else {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary: @{
@"status": @NO,
@"error": @"No data!"
}];
}
} @catch (NSException* e) {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary: @{
@"status": @NO,
@"error": @"Failed to hash data"
}];
}
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}