![](/img/trans.png)
[英]How to avoid image relocation sending an email using NSSharingService with HTML content
[英]NSSharingService: How to compare with the constants?
当用户分享给我时我想做点什么
- (void)sharingService:(NSSharingService *)sharingService didShareItems:(NSArray *)items
{
BOOL isSafariReadingList = [sharingService.description rangeOfString:NSSharingServiceNameAddToSafariReadingList].location != NSNotFound;
}
我在NSSharingService
上找不到任何可以与常量进行比较的属性。 我错过了什么吗?!
由于似乎没有答案(提交http://openradar.appspot.com/16114564 ),我创建了一个类别
@implementation NSSharingService (ActivityType)
- (NSString*)activityType {
NSRange range = [self.description rangeOfString:@"\\[com.apple.share.*\\]" options:NSRegularExpressionSearch];
range.location++; // Start after [
range.length -= 2; // Remove both [ and ]
return [self.description substringWithRange:range];
}
@end
那么您可以通过以下方式使用它:
[[sharingService activityType] isEqualToString:NSSharingServiceNameAddToSafariReadingList];
[@[NSSharingServiceNameAddToSafariReadingList, NSSharingServiceNameAddToIPhoto]
containsObject:[sharingService activityType]];
我猜苹果只是不认为我们想知道人们从 Picker 中选择了哪些服务。
解析那个“com.apple.share.System”显然很危险,但这是我看到避免一组rangeOfString || rangeOfString || rangeOfString….
的唯一方法rangeOfString || rangeOfString || rangeOfString….
.
有关更多信息,请查看https://github.com/stuffmc/SharingPicker
另外,作为参考,这里有一些NSSharingServiceName*
常量的值,都以com.apple.share.
PostOnFacebook Facebook.post
PostOnTwitter Twitter.post
PostOnSinaWeibo SinaWeibo.post
PostOnTencentWeibo TencentWeibo.post
PostOnLinkedIn LinkedIn.post
ComposeEmail Mail.compose
ComposeMessage Messages.compose
SendViaAirDrop AirDrop.send
UseAsTwitterProfileImage Twitter.set-profile-image
UseAsFacebookProfileImage Facebook.set-profile-image
UseAsLinkedInProfileImage LinkedIn.set-profile-image
PostImageOnFlickr Video.upload-image-Flickr
AddToSafariReadingList System.add-to-safari-reading-list
AddToIPhoto System.add-to-iphoto
这个检查的等效项在我的 Swift 代码中起作用:
sharingService == NSSharingService(named: NSSharingServiceNameAddToSafariReadingList)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.