phonegap facebook插件

时间:2013-02-19 15:45:48

标签: cordova facebook-javascript-sdk phonegap-plugins

我正在使用phonegap 2.4和最新的facebook插件进行项目

https://github.com/phonegap/phonegap-facebook-plugin

我的问题是发布到用户墙上的Feed,我能够对用户进行身份验证,获取所有适当的事件等等,但是当我尝试发布到Feed时(我正在做请先读取然后写入权限序列,因为ios6中有一个新的api,并且拥有用户的发布权限,而且我已经在设置上设置了我的facebook帐户啊,而且我还在使用facebook sdk 3.1)控制台只是通过和错误

*****由于未捕获的异常'NSInternalInconsistencyException'终止应用程序,原因:' - [__ NSCFDictionary removeObjectForKey:]:发送到不可变对象的变异方法'**

正试图删除和反对和不可更改的字典,但为什么呢?哪里?怎么解决这个?

这就是我的js methond正在尝试做的事情

var params = {
             method: 'feed',
             name: 'Facebook Dialogs',
             link: 'https://developers.facebook.com/docs/reference/dialogs/',
             picture: 'http://fbrell.com/f8.jpg',
             caption: 'Reference Documentation',
             description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
   };

  FB.ui(params, function(obj) { console.log(obj); });

错误是在调用 FB.ui()

this is a screenshot of the thread stack is that helps!

我真的不知道该怎么办,或者我可以在哪里开始寻找,感谢您的帮助!!!

1 个答案:

答案 0 :(得分:4)

这是由于Cordova 2.4.0版本之后的FacebookConnect插件中的一个错误(使用NSJSONSerialization,因此返回的对象现在是不可变的)。

已在Github上发出拉取请求,其中包含以下修复: https://github.com/phonegap/phonegap-facebook-plugin/pull/251

与此同时,您可以手动对FacebookConnectPlugin.m进行以下更改:

替换第284行:

NSMutableDictionary *options = [[command.arguments lastObject] mutableCopy];

在第310行之后添加以下内容:

[options release];