通过cocoapods安装的Sharekit现在不分享facebook和twitter

时间:2014-04-05 08:41:13

标签: ios cocoa-touch cocoapods sharekit

我有一个iphone应用程序,它使用了sharekit,我根据这个文档使用子模块安装:

https://github.com/ShareKit/ShareKit/wiki/Installing-sharekit

Twitter和Facebook共享使用这种方法运行良好。

现在我想转移到cocoapods,我把它添加到我的Podfile:

pod 'ShareKit/Core'
pod 'ShareKit/Facebook', '~> 2.5.6'
pod 'ShareKit/Twitter', '~> 2.5.6'

进行了pod更新,所有安装和编译都正常。

但是当我现在在应用程序中分享时,它并没有显示facebook和twitter的分享选项。

我已经分类了DefaultSHKConfigurator,我已经实现了这些方法:

- (NSString*)appName {
    return @"XYZ App";
}

- (NSString*)appURL {
    return @"someurl";
}


- (NSNumber*)showActionSheetMoreButton {
    return [NSNumber numberWithBool:false];
}

- (NSString*)twitterConsumerKey {
    return @"customerKey";
}

- (NSString*)twitterSecret {
    return @"secretKey";
}
// You need to set this if using OAuth, see note above (xAuth users can skip it)
- (NSString*)twitterCallbackUrl {
    return @"someurl/oauth";
}

- (NSString*)facebookAppId {
    return @"555555555";
}

- (NSString*)facebookLocalAppId {
    return @"lite";
}


- (NSArray*)facebookWritePermissions {
    return [NSArray arrayWithObjects:@"publish_actions", nil];
}
- (NSArray*)facebookReadPermissions {
    return nil; // this is the defaul value for the SDK and will afford basic read permissions
}

- (NSArray*)defaultFavoriteURLSharers {
    return [NSArray arrayWithObjects:@"SHKMail",@"SHKTwitter",@"SHKFacebook", @"SHKTextMessage", nil];
}


- (NSArray*)defaultFavoriteImageSharers {
    return [NSArray arrayWithObjects:@"SHKMail",@"SHKTwitter",@"SHKFacebook", @"SHKTextMessage", nil];
}
- (NSArray*)defaultFavoriteTextSharers {
    return [NSArray arrayWithObjects:@"SHKMail",@"SHKTwitter",@"SHKFacebook", @"SHKTextMessage", nil];
}

- (NSNumber*)autoOrderFavoriteSharers {
    return [NSNumber numberWithBool:false];
}

- (Class)SHKActionSheetSubclass {
    return NSClassFromString(@"CustomSHKActionSheet");
}

- (NSNumber*)maxFavCount {
    return [NSNumber numberWithInt:4];
}

同样在我的app委托中我肯定会调用自定义配置器。

  DefaultSHKConfigurator *configurator = [[[SHKConfigurator alloc] init] autorelease];
    [SHKConfiguration sharedInstanceWithConfigurator:configurator];

我从调试中注意到的是,只有方法:showActionSheetMoreButton被调用而不是任何其他方法。

我还注意到SHKTwitter.m和SHKFacebook.m中的“canShare”方法都返回false。并且从不调用SHKiOSTwitter.m和SHKiOSFacebook.m中的“canShare”方法(这些是本机版本,所以我想这些应该被调用)

知道为什么这些分享者没有展示?

1 个答案:

答案 0 :(得分:3)

使用 SHKiOSFacebook SHKiOSTwitter 而不是 SHKFacebook SHKTwitter > :相应地:

- (NSArray*)defaultFavoriteURLSharers 
{
    return [NSArray arrayWithObjects:@"SHKiOSTwitter",@"SHKiOSFacebook", @"SHKReadItLater", nil];
}

注意:

如果您已在应用中使用过Sharekit,则不会调用defaultFavoriteURLSharers,因为Sharekit会从设备首选项中获取它们。为了解决这个问题,您必须清理首选项(通过重新安装应用程序),甚至可以更改ShareKit/Core/SHK.m:favoritesKeyForItem中存储首选项的密钥(不推荐)。