我有一个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”方法(这些是本机版本,所以我想这些应该被调用)
知道为什么这些分享者没有展示?
答案 0 :(得分:3)
使用 SHKiOSFacebook 和 SHKiOSTwitter 而不是 SHKFacebook 和 SHKTwitter > :相应地:
- (NSArray*)defaultFavoriteURLSharers
{
return [NSArray arrayWithObjects:@"SHKiOSTwitter",@"SHKiOSFacebook", @"SHKReadItLater", nil];
}
注意:
如果您已在应用中使用过Sharekit,则不会调用defaultFavoriteURLSharers
,因为Sharekit会从设备首选项中获取它们。为了解决这个问题,您必须清理首选项(通过重新安装应用程序),甚至可以更改ShareKit/Core/SHK.m:favoritesKeyForItem
中存储首选项的密钥(不推荐)。