默认错误消息 - 适用于 iOS 的 Cordova Facebook Connect 插件
Posted
技术标签:
【中文标题】默认错误消息 - 适用于 iOS 的 Cordova Facebook Connect 插件【英文标题】:Default error message - Cordova Facebook Connect Plugin for iOS 【发布时间】:2014-05-14 03:47:36 【问题描述】:我正在使用 cordova facebook connect 插件对我的应用程序进行用户身份验证。我的问题是,如果用户取消登录或分享到 Facebook,我仍然不知道如何禁用默认错误消息。
我已经禁用了 facebook-js-sdk.js 文件中的所有警报消息,但仍在发生。
【问题讨论】:
这个问题好运吗? 【参考方案1】:是的。效果很好。
进入 FacebookConnectPlugin.m 文件,找到这个函数
- (void) showDialog:(CDVInvokedUrlCommand*)command
用该函数中的这段代码替换。
// Save the callback ID
self.dialogCallbackId = command.callbackId;
NSMutableDictionary *options = [[command.arguments lastObject] mutableCopy];
NSString* method = [[NSString alloc] initWithString:[options objectForKey:@"method"]];
if ([options objectForKey:@"method"])
[options removeObjectForKey:@"method"];
__block BOOL paramsOK = YES;
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[options enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop)
if ([obj isKindOfClass:[NSString class]])
params[key] = obj;
else
NSError *error;
NSData *jsonData = [NSJSONSerialization
dataWithJSONObject:obj
options:0
error:&error];
if (!jsonData)
paramsOK = NO;
// Error
*stop = YES;
params[key] = [[NSString alloc]
initWithData:jsonData
encoding:NSUTF8StringEncoding];
];
if (!paramsOK)
CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR
messageAsString:@"Error completing dialog."];
[self.commandDelegate sendPluginResult:pluginResult callbackId:self.dialogCallbackId];
else
// Show the web dialog
[FBWebDialogs
presentDialogModallyWithSession:FBSession.activeSession
dialog:method parameters:params
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error)
CDVPluginResult* pluginResult = nil;
if (error)
// Dialog failed with error
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR
messageAsString:@"Error completing dialog."];
else
if (result == FBWebDialogResultDialogNotCompleted)
// User clicked the "x" icon to Cancel
//pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR
//messageAsString:@"User cancelled."];
else
// Send the URL parameters back, for a requests dialog, the "request" parameter
// will include the resluting request id. For a feed dialog, the "post_id"
// parameter will include the resulting post id.
NSDictionary *params = [self parseURLParams:[resultURL query]];
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:params];
[self.commandDelegate sendPluginResult:pluginResult callbackId:self.dialogCallbackId];
];
[super writejavascript:nil];
// For optional ARC support
#if __has_feature(objc_arc)
#else
[method release];
[params release];
[options release];
#endif
【讨论】:
以上是关于默认错误消息 - 适用于 iOS 的 Cordova Facebook Connect 插件的主要内容,如果未能解决你的问题,请参考以下文章
适用于VS 2017的Cordova工具 - 不支持的类文件版本52
使用适用于 iOS 的 AddThis SDK,需要更改默认 Twitter 文本的“通过 @AddThis”
适用于 iOS 的 Facebook SDK 不会随链接一起发布照片