我尝试与NSSharingServicePicker
共享一个网页网址到Facebook,但它在我的FB墙上显示的不是网页网址(包含描述等),而是像链接一样。
我的代码非常简单。
- (IBAction)share:(id)sender
{
NSURL* url = [NSURL URLWithString:@"http://itunes.apple.com/us/app/travel-route-planner/id504536611"];
NSSharingServicePicker *sharingServicePicker = [[NSSharingServicePicker alloc] initWithItems:[NSArray arrayWithObjects:url, nil]];
sharingServicePicker.delegate = self;
[sharingServicePicker showRelativeToRect:[shareButton bounds]
ofView:shareButton
preferredEdge:NSMinYEdge];
}
我知道可以做到。
Safari以我需要的方式共享网页。
答案 0 :(得分:0)
我查看了您要分享的网站上的源代码,并通过Facebook Object Debugger进行了操作。 Facebook在定义的协议方面非常挑剔,所以我建议您将网址从http://
更改为https://
,因为安全网址是iTunes决定设置为og:url
的网址属性。见here:
答案 1 :(得分:0)
我在Apple Dev论坛上找到了答案。
您需要使用以下NSSharingServiceDelegate方法
将图像添加到NSURL- (NSRect) sharingService: (NSSharingService *) sharingService
sourceFrameOnScreenForShareItem: (id<NSPasteboardWriting>) item
{
if([item isKindOfClass: [NSURL class]])
{
//return a rect from where the image will fly
return NSZeroRect;
}
return NSZeroRect;
}
- (NSImage *) sharingService: (NSSharingService *) sharingService
transitionImageForShareItem: (id <NSPasteboardWriting>) item
contentRect: (NSRect *) contentRect
{
if([item isKindOfClass: [NSURL class]])
{
return [NSImage imageNamed:@"image.png"];
}
return nil;
}
不要忘记为NSSharingService设置委托
- (id < NSSharingServiceDelegate >)sharingServicePicker:(NSSharingServicePicker *)sharingServicePicker delegateForSharingService:(NSSharingService *)sharingService
{
return self;
}